如何暂停,重启线程
public void go()
{
ThreadStart ts= new ThreadStart(TD);
if (ts != null)
{
Thread td = new Thread(ts);
td.Start();
}
}
public void TD()
{
//....
}
这是一个局部的线程,我想在外部点击"暂停"按钮时,这个线程暂停
按"重启"线程重启, --------------------编程问答-------------------- 线程名.Suspend();挂起一个线程
线程名.Resume();继续刚才被挂起的线程 --------------------编程问答--------------------
td.Suspend();//挂起
td.Resume();//继续进行
td.Abort();//终止
看你自己想要什么操作了,暂停就用挂起了,如果要停止就用ABORT,然后再START --------------------编程问答-------------------- 但我的是局部线程.不是全局的啊. --------------------编程问答-------------------- 1.线程暂停的Suspend()不推荐使用,要暂停就直接退出,然后重新启动,请查看msdn
2.局部线程可以在实现后放到容器中,如List或Dictionary,根据线程标识就可以控制
--------------------编程问答-------------------- td.Suspend();//挂起
td.Resume();//继续进行
td.Abort();//终止
--------------------编程问答--------------------
是滴 --------------------编程问答-------------------- 做个全局bool变量当标记。
或者像上面说的 --------------------编程问答-------------------- 可以转换一个思维方式,在开始方法的时候让线程abort,然后重新执行线程。 --------------------编程问答--------------------
这样的方法都被标示为作废的方法,别再使用了。
想要暂停,重启,自己线程里用某个变量控制 --------------------编程问答-------------------- 你先停止,再启动,不就是重启了 --------------------编程问答--------------------
就可以解决了 --------------------编程问答--------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
namespace MyThread
{
class Program
{
private static int newTask(int ms)
{
Console.WriteLine("任务开始");
Thread.Sleep(ms);
Random random = new Random();
int n = random.Next(10000);
Console.WriteLine("任务完成");
return n;
}
private delegate int NewTaskDelegate(int ms);
static void Main(string[] args)
{
NewTaskDelegate task = newTask;
IAsyncResult asyncResult = task.BeginInvoke(2000, null, null);
// EndInvoke方法将被阻塞2秒
int result = task.EndInvoke(asyncResult);
Console.WriteLine(result);
补充:.NET技术 , C#