C# 任务内填充对象
我开始了解第三方物流,现在有问题了。 我有一个在构造函数中启动任务的类工作者。我将这些任务与手动重置事件同步。但我想得到一些关于这方面的统计数据。所以我尝试在这个任务中填充对象。这是个好主意吗C# 任务内填充对象,c#,task-parallel-library,C#,Task Parallel Library,我开始了解第三方物流,现在有问题了。 我有一个在构造函数中启动任务的类工作者。我将这些任务与手动重置事件同步。但我想得到一些关于这方面的统计数据。所以我尝试在这个任务中填充对象。这是个好主意吗 public Worker(...) { ... StatisticItem = new StatisticItem(); .... Task = Task.Factory.StartNew(() => {
public Worker(...)
{
...
StatisticItem = new StatisticItem();
....
Task = Task.Factory.StartNew(() =>
{
//Manual reset event
WaitForSignalToStart.WaitOne();
while (source.IsMyTurn(RepeatOrder))
{
Item item;
var realTimeWatch = new Stopwatch();
while (TryGetNext(out item))
{
...
DoWork()
StatisticItem.PlanItemId =...
StatisticItem.CommandAndQueryName =...
StatisticItem.WokrerId = ...
StatisticItem.ThreadId = ...
StatisticItem.Date = ...
}
}, tokenSource.Token, TaskCreationOptions.LongRunning, TaskScheduler.Current);
}
只要您只有一个任务访问此特定的
统计学家项目
,您就可以了。这是因为lamba语句能够使用在其中创建的上下文中的变量。只要您只有一个任务访问此特定的统计学家项目,您就可以了。这是因为lamba语句能够使用创建它们的上下文中的变量。是的,您可以这样做,但是如果统计学家项目是一个字段,则只能有一个任务处于活动状态。此外,建议锁定统计学家项目
是的,您可以这样做,但如果统计学家项目
是一个字段,则只能有一个任务处于活动状态。此外,建议将统计学家项锁定为具有私有集的统计学家项。所以它需要锁定还是否?统计项的实例不是问题所在。它与您将要读写的统计项的属性有关。只要在两侧使用相同的对象实例,就需要使用来锁定任何对象(gui/任务)。在这种情况下,使用statisticsitem对象是一个合理的建议,但它可以是任何对象。statisticsitem是具有私有集的属性。所以它需要锁定还是否?统计项的实例不是问题所在。它与您将要读写的统计项的属性有关。只要在两侧使用相同的对象实例,就需要使用来锁定任何对象(gui/任务)。在这种情况下,使用statisticsitem对象是一个合理的建议,但它可以是任何对象。