c# - 如何创建前台任务?

标签 c# multithreading task

我好像创建前台任务失败了。 我的主线程是 suppose 调用另一个线程然后退出。 另一个线程应该永远运行

void MainThreadMain()
{
    task_main = Task.Factory.StartNew(() => OtherThread()) ;
    return;
}

void OtherThread()
{
  while(true)
  {
     TellChuckNorrisJoke();
  }
}

即使主线程已死,我如何确保 task_main 继续运行? 我以为我会这样做:

task_main.IsBackgorund = false; 

但没有这样的选择:\ 我可以让我的主线程等待来 self 的其他线程的信号,它传递到前台模式。但这很愚蠢。

最佳答案

显而易见的问题是:为什么不在主线程上运行您的工作?

假设这不是一个选项,您应该使用 Thread 而不是 Task。然后你可以设置:

Thread.IsBackground = false;

这将防止您的应用程序在工作线程运行时终止。

关于c# - 如何创建前台任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9701368/

相关文章:

c# - 如何在没有具体实例的情况下使用反射获取类型的静态属性的值

c# - 图像在 Win8/Win10 中呈现,但在 Win7 中不呈现

c# - 如何在C#中将Json对象转换为数组

c# - 多个 Task.Run 未正确等待/运行

c# - 如何在 .NET 中装饰(时间)任务?

c# - List(T).ForEach 未使用 Xamarin 定义

android - 在后台线程中膨胀 View

.net - 多线程环境中的对象生存期

java - 简单的 Java 代码允许单线程访问和其他线程跳过/继续

c# - 异步方法中的 Await 与 Task.Result