如何为状态更新的线程分配变量



我正在c#控制台应用程序中构建软件

我创建线程并将其分配给函数的代码:

Task.Factory.StartNew(() => util.Menu());

我想做的是有一个显示线程当前状态的菜单,例如:

--THREAD 1--
Status: BUSY
--THREAD 2--
Status: IDLE

等等。。。

我该怎么做?

现在建议使用Task.Run()而不是Task.Factory.StartNew()(TaskFactory.StartNew方法(,但由于两者都返回Task,因此对我的答案没有影响。

无论你选择哪一个,都会返回一个任务,你可以将这些任务添加到列表中,然后你可以获得其中任何一个的状态:

List<Task> tasks = new List<Task>();
tasks.Add(Task.Run(() => util.Menu));

然后你可以得到它们的状态:

var status = tasks.Select((t, i) => new { Id = i + 1, t.Status});

和:

foreach(var item in status)
Console.WriteLine($"--Task {item.Id}--rnStatus: {item.Status}");

最新更新