这几天看多线程在.net下的实现,其中有Thread.Sleep(int)和Join(int)方法
请问两者有什么不同?
请问两者有什么不同?
解决方案 »
- DataGridView导出到EXCEl后再Excel中插入固定标题图片的代码???急求啊!
- 子窗体如何能在父窗体范围内移动
- [HELP]多个按钮如何实现一个事件`
- 如何让多个类实例变量共用一段执行代码?
- 根据title得到控件的值
- mm在线求助!在水晶报表中,如何实现隐藏或抑制显示整个子报表!
- 如何将字符串"ABC=True"转换成ABC.Text="True"赋值过程?
- 一个网络编程的问题 —— 如何使用c#读取网络传递过来的buffer
- 请教如何用C#创建Windows服务程序
- 继续求教EXCEL编程的问题!--在线等候!
- c#调用c++ Bulider生成的dll遇见的问题
- 爽,SAP资料下载,
使线程回到执行队列中,从而恢复线程的执行。如果父线程先于子线程结束,那么子线程将在父线程结束的同时被迫结束。Thread.Join()方法使父线程等待,直到子线程结束。
http://www.c-sharpcorner.com/Multithreading.asp
http://www.anticipatingminds.com/Content/Products/devAdvantage/KnowledgePacks/Threading/ThreadingKnowledgePack.aspx
http://www.manbu.net/article.asp?id=41
里面的文章对你会有帮助的
//.....
class Test
{
private int i;//用来递增
static void Main()
{
CreateThreadAndStart();
}private void CreateThreadAndStart()
{
Thread t;
t=new Thread(new ThreadStart(Increment));
t.Start();
}private void Increment()
{
for(i=0;i<100000;i++)
{
Console.WriteLine(i.ToString());
}
}}
然后我在i还没有递增到100000时想方法调用Thread.Sleep(1000);这样的语句,控制台中就显示i值不变了我的问题是,Sleep(int)是一个静态方法,那现在处于睡觉状态的是哪个线程啊?
而Join(int)是一个类方法,那我用这样的
Cobj.Join(1000);//Cobj是一个类实例
让暂时挂起的又是哪个线程呢?谢谢楼上几位:)搞定问题就给分:)
Cobj.Join(1000)挂起父线程