static void Main(string[] args)
        {
            var task = Task.Factory.StartNew(() =>
            {
                for (int i = 0; i < 10; i++)
                {
                    Console.WriteLine("{0}", i);
                    Thread.Sleep(1000);
                }
            });            if (!task.Wait(2000))
            {
                //在这里强行结束task的运行
            }            Console.ReadLine();
        }代码如上。在注释的地方结束上面那个10次循环的task,要怎么写?

解决方案 »

  1.   

    // 检查task是否打开
                Process[] task = Process.GetProcessesByName("task");
                foreach (Process p in task)
                {
                    p.Kill();  // 关闭task
                      p.Dispose();
                }
      

  2.   

    看看有没有帮助~~~
    Task Cancellation
      

  3.   

    看了,没有帮助。这个是task内部有写好检测cancel的代码,我想要的是没有这种语句,强行中断task
      

  4.   

    p.kill();是Process的语句,我要的是Task的
      

  5.   

    你自己不写逻辑,又想能强行关闭?有不kill线程.想什么呢?
    我觉得一般给task分配一个线程运行。中断时把线程干掉
      

  6.   

    最简单用批处理都可以
    taskkill /im thunder.exe /f
      

  7.   

    你new thread  让他执行 然后你在while循环里面判断时间 有没有到  以及thread是否结束超时 就把threadkill了