主程序创建一个线程ThreadPool.QueueUserWorkItem(new WaitCallback(线程A), null);线程A里面又创建了另外一个线程,这个线程里面有循环。ThreadPool.QueueUserWorkItem(new WaitCallback(线程B), 参数);线程B里面有循环……
foreach (Match match in matches)
{
代码,输出一些东西;
}
……现在的问题是,如果我在线程B的循环处加断点,F10一步一步是能执行全部的循环操作的,如果我不加断点,直接运行的话,这个循环感觉是不执行的(不输出),而是直接执行循环后面的代码了。这个问题麻烦大家帮忙看一下。谢谢!!
foreach (Match match in matches)
{
代码,输出一些东西;
}
……现在的问题是,如果我在线程B的循环处加断点,F10一步一步是能执行全部的循环操作的,如果我不加断点,直接运行的话,这个循环感觉是不执行的(不输出),而是直接执行循环后面的代码了。这个问题麻烦大家帮忙看一下。谢谢!!
解决方案 »
- C#中可以把DataTable中的Log_name字段中的System.Byte[]还原吗,该如何做。能给实例代码最好不过了
- 一个很棘手的问题!在线等!
- 拆分字符串问题
- list<>中包含了我自己定义的结构体,为何无法保存为2进制文件?
- web开发下的DataGrid控件上添加的按钮可以用来执行非数据库(默认的delete,save,cancel除外)处理的功能吗 ?
- 求下载Microsoft.Data.ConnectionUI.Dialog.dll
- 菜人的菜问题。。。可能只值 一分。也可能更高。。。
- 如何在程序中获取手机的验证码
- 求正则
- 如何播放MP3文件的指定部分
- 如何添加事件
- DataGridView全部删除不成功?
Thread.Sleep(0);
试试。加在哪你自己看代码找合适地方。避免循环占用太多cpu不释放。
在B里面,循环之前,输出一下matches.Count.你不设断点的时候很可能matches根本没准备好,这样的话,你的循环不会有任何输出.
同意,很可能matches还为空呢,就执行到foreach了~~
MatchCollection matches = rr.Matches(m.Value);
foreach (Match match in matches)
{
代码,输出一些东西;
}
我尝试把Thread.Sleep(0);加在foreach 上面,也不行,偶尔能输出一个或者两个结果(断点看到的结果有50个)