C# 动态创建线程的问题

问题描述

各位大侠,帮忙看一下,这样循环产生的线程,结果用foreach遍历时,只有两条线程,而我有10次循环,这是为什么?那里错了吗?网上找了好久都是这样动态产生的线程,但其实只产生一条线程.ThreadnewThread=null;for(inti=0;i<intMethodCount;i++)//根据行数,产生相应线程{strName=dgv_server.Rows[i].Cells["ColumnName"].Value.ToString().Trim();intID=Convert.ToInt32(dgv_server.Rows[i].Cells["ID"].Value.ToString().Trim());strThreadName=strName+intID.ToString().Trim();Execthreadsnewthread=newExecthreads(intID,strName);newThread=newThread(newthread.ExecNewThread){Name=strThreadName,IsBackground=true};newThread.Start();}

foreach(ProcessThreadthinProcess.GetCurrentProcess().Threads){if(th.ThreadState==System.Diagnostics.ThreadState.Running){n++;}}

解决方案

解决方案二:
你的线程里都干啥呢了,如果线程结束很快,你foreach时,早就没有了
解决方案三:
Process.GetCurrentProcess().Threads不准的你用进程管理器看,线程数可能能上到好几十,可是实际上有的线程早结束了
解决方案四:
但是原来提示是1,后面开始循环产生线程后,一直都为2,就算所有都搪行完毕也为二,另外,我该如何知道我的线程已经存了,启动后怎么判断各条线程的状态,我现在可否赐教一下
解决方案五:
Execthreadsnewthread你new完别丢弃放进List<Execthreads>里,不就可以随时看状态了你把变量丢弃了,还上哪找去
解决方案六:
System.Diagnostics.ProcessThread代表非托管线程System.Threading.Thread代表托管线程两者之间没有直接联系的。根据MSDN提供的信息,一个非托管线程可以包含多个托管线程。

时间: 2024-11-01 06:38:23

C# 动态创建线程的问题的相关文章

view 生成后,动态创建的按钮无法显示

问题描述 在view的OnInitialUpdate中用create动态创建的按钮,在view显示后就能出现,但是在view生成后再用create创建的按钮却无法显示了,用了ShowWindow也看不到,怎么显示?请大家帮帮忙! 解决方案 解决方案二:没人看?没人知道?自己顶解决方案三:补充一下,刚才试了一下,我创建的按钮的函数是createbutton,是在线程的回调函数中创建的,回调函数是一个全局函数,并且有一个指向view的参数,但是我发现在view的内部函数中是可以创建按钮的,但是在线程

泛型-c# 动态创建控件 及触发事件 即插即用。

问题描述 c# 动态创建控件 及触发事件 即插即用. 各大大好,初来驾到,请大家多多关照,问题是这样的.需求 :需要动态添加控件.然后需要项目做出来后要实现"即插即用"的特点.(即插即用:我们要是更新一个功能,用户只要更新这个控件就可以直接使用,而不用更新整个客服端)问题 :知道要用泛型来写,但是看了一天了,不知道如何下手,现已写了如下代码:using System;using System.Collections.Generic;using System.Linq;using Sys

button-给动态创建的按钮之间添加空间

问题描述 给动态创建的按钮之间添加空间 在程序中我动态的创建了很多按钮,但是如何在两个按钮之间添加空间呢?我用这样的代码但是没有实现,大家能帮助我吗?谢谢! private LinearLayout LLDynamic; private RelativeLayout.LayoutParams ParaOne;ParaOne = new RelativeLayout.LayoutParams(280 30);Button button1= new Button(Twindo_fromEditGro

js动态创建div等元素实例

为了节省时间,就直接贴代码了!希望大家多多的关注我! <html> <head> <title>js动态创建div等元素实例</title> <style type="text/css"> </style> </head> <body> <script language="javascript"> var Test={ createDiv:function()

progressbar-android动态创建progressBar自定义样式不显示。

问题描述 android动态创建progressBar自定义样式不显示. 我自定义progressBar样式的时候,在xml布局文件里用style=自己在styles文件中定义的style可以实现. 用程序动态创建的时候,progressbar = new progressbar(this)也可以实现,但没法自定义,是使用的默认的. 如果用progressbar = new progressbar(this,null,style1)就实现不了,啥都不显示,该怎么办呢? 解决方案 好吧,没人回答,

用PHP动态创建Flash动画

flash动画|创建|动态 Macromedia 公司出品的 Flash 动画软件现已经成为Web页面上非常流行的表现工具,网站开发者利用它引起浏览者的兴趣.然而不幸的是,仅仅使用ActionScript创建动画受到很大的限制,Macromedia已经宣布,打算放弃Flash Generator产品,转而采用支持Flash MX的Cold Fusion,我们的网站将向何处去呢?现在,我们可以利用Ming PHP库来轻松地动态创建Flash动画,并且和我们的代码无缝集成.我们可以根据数据库里的数据

用.net动态创建类的实例

用.net动态创建类的实例 看了网上很多关于DotNet动态创建类的实例的文章,我这里想总结一下,其实方法很简单,就是用"Activator.CreateInstance".但是这个方法需要待创建的类的Type作为参数,为了获得该参数,可以利用[Assembly].GetType方法,这个方法只需要待创建的类的名称(名称字符串)就可以了,最后的问题就是要获得这个类所在的程序集.如何获得待创建的类所在程序集,那么就解决了这个问题. 其实,在获得程序集这个问题上,可以有更简单的办法,以下是

经典教程:用.net动态创建类的实例

看了网上很多关于DotNet动态创建类的实例的文章,我这里想总结一下,其实方法很简单,就是用"Activator.CreateInstance".但是这个方法需要待创建的类的Type作为参数,为了获得该参数,可以利用[Assembly].GetType方法,这个方法只需要待创建的类的名称(名称字符串)就可以了,最后的问题就是要获得这个类所在的程序集.如何获得待创建的类所在程序集,那么就解决了这个问题. 大家可以参考http://www.cnblogs.com/ShadowK/archi

PHP脚本的10个技巧(转自ZDNet) --动态创建图象

创建|动态|技巧|脚本 动态创建图象 在安装了某些第三方函数库之后,结合你的图形处理技能,你就可以用PHP创建和处理图像了.事实上,你也不需要太高的几何学知识.我在中学的时候这门功课总是不及格,现在不也照样会用PHP创建图像! 在使用基本的图像创建函数之前,你需要安装GD库.如果要用到和JPEG相关的图像创建函数你还需要安装jpeg-6b.在图像中使用Type 1字体的时候还必须安装t1lib. 在这里,你还需要对你的系统进行进一步地调整.首先,你必须安装t1lib以提供图象处理支持,接下来要安