10 2021 档案
摘要:使用委托开启新线程 使用委托中的BeginInvoke方法执行委托,放进委托中的方法将在子线程中执行,委托执行完毕后的回调方法也在子线线程中执行。 使用Thread类开启新线程 实例化Thread的构造方法有4个,但是一般常用上面2种。即无参无返回值的委托,和有参无返回值的委托,参数的类型是Obje
阅读全文
摘要:由于线程安全机制,WinForm和WPF都是只能在UI线程中操作UI控件,否则抛出在非创建该控件的线程中访问控件。 但是常常需要在子线程中刷新控件的显示,可采用下面的方法 将一段对控件刷新的逻辑的逻辑包装在委托中,然后使用 SynchronizationContext 将委托传递给UI线程的执行队列
阅读全文
摘要:// 创建新线程 Task t = Task.Run(()=> { // 做些耗时的事 }); Task t = Task.Factory.StartNew(()=> { // 做些耗时的事 }); t.Wait();// 阻塞当前线程,直到子线程t 执行完成 t.Wait(100); // 阻塞等
阅读全文
摘要:Thread 创建线程 Thread t = new Thread(Test); t.Start(); public void Test() { for (int i = 0; i < 10; i++) { Thread.Sleep(1000); } } Thread t = new Thread(
阅读全文
摘要:使用ManualResetEvent 在一个线程中控制另一个线程的执行 首先需要先实例化一个信号对象 ManualResetEvent signal= new ManualResetEvent(false); signal.WaitOne() 阻塞当前线程,等待接收到其他线程发来的取消信号 sign
阅读全文

浙公网安备 33010602011771号