主程序线程
工作线程。
//============================
工作线程执行序列
{
....
.... 在这里我怎么告诉主线程去做某一件事情,
比如告诉主线程去执行一个函数,或则执行某一事件
(如果是vc可以用windows消息通知主线程,然后主线程去响应)。 继续执行该工作线程的下一语句
.........。
..............
}谢谢高手指点哦。
工作线程。
//============================
工作线程执行序列
{
....
.... 在这里我怎么告诉主线程去做某一件事情,
比如告诉主线程去执行一个函数,或则执行某一事件
(如果是vc可以用windows消息通知主线程,然后主线程去响应)。 继续执行该工作线程的下一语句
.........。
..............
}谢谢高手指点哦。
C#里也可以调用api发送消息哦(工作线程一定要调用TranslateMessage和DispatchMessage)
invoke(委托,参数) 是不是这个?
如果用事件通知 怎么实现??
代码给来看看
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
class Class1
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
Test test = new Test();
System.Threading.Thread 主线程 = new System.Threading.Thread( new System.Threading.ThreadStart( test.主线程循环 ));
System.Threading.Thread 工作线程 = new System.Threading.Thread( new System.Threading.ThreadStart( test.工作线程 ));
主线程.Start();
工作线程.Start();
while ( true )
{
System.Threading.Thread.Sleep(10);
}
//
// TODO: 在此处添加代码以启动应用程序
//
}
}
public delegate void MyEventHandler( object sender, EventArgs arg );
public class Test
{
public event MyEventHandler 通知主线程事件;
public void 主线程循环()
{
通知主线程事件 += new MyEventHandler(Test_通知主线程事件);
while( true )
{
System.Threading.Thread.Sleep(1);
}
} public void 工作线程()
{
while( true )
{
if ( 通知主线程事件 != null )
通知主线程事件( this, new EventArgs() );
System.Threading.Thread.Sleep(500);
}
} private void Test_通知主线程事件(object sender, EventArgs arg)
{
System.Console.WriteLine( "收到工作线程通知了" );
}
}
}
这个委托怎么写都 可以的吧我测试了下 public delegate void MyEventHandler(string msg); 也没有问题的。随便问一下MyThread.Suspend();
MyThread.Resume(); 好象这两个方法。net2005警告已经过时,但不是错误 可以使用
那该用什么方法来代替比较好???马上给结贴了 呵呵~~~~~