我有一个应用程序,我们使用任务(Tasks)来完成。我们还修改了CultureInfo(使用的是EN-US语言,但保留日期/数字格式),并且我们使用的是.Net 4.0。
该应用程序有很多线程和任务,并且我们有一个工厂用于创建Task/Threads。
对于线程,我们有以下代码,以确保每个线程都在正确的CurrentCulture下启动:
但是对于任务,我不知道如何实现这种机制:
有什么想法吗?
该应用程序有很多线程和任务,并且我们有一个工厂用于创建Task/Threads。
对于线程,我们有以下代码,以确保每个线程都在正确的CurrentCulture下启动:
//This is basically only the constructor, but it describe well how we create the Thread:
public MonitoredThread(ThreadStart threadStart, string name, bool isBackground = false)
{
m_threadStart = threadStart;
m_name = name;
m_isBackground = isBackground;
Thread = new Thread(ThreadWorker)
{
Name = name,
IsBackground = isBackground,
CurrentCulture = CustomCultureInfo.CurrentCulture,
CurrentUICulture = CustomCultureInfo.CurrentCulture
};
}
但是对于任务,我不知道如何实现这种机制:
public static Task ExecuteTask(Action action, string name)
{
MonitoredTask task = new MonitoredTask(action, name);
return Task.Factory.StartNew(task.TaskWorker);
}
有什么想法吗?
TaskWorker
是什么类型? - Johannes WanzekMonitoredTask
是一个自定义类,代表一个Task
(我们跟踪它们何时开始、何时结束等等...)。TaskWorker
是一个属性,可以访问由该类映射的Task
。 - J4NTaskWorker
是我们在构造函数参数中提供的操作。 - J4N