如果我将此方法称为顺序性,
object[] ab = GetSomething(myObject);
我得到这样的日期时间格式,这没关系
知道我是否使用tpl来调用此方法
Task t1 = Task.Factory.StartNew(() => GetSomething(myObject));
Task t2 = Task.Factory.StartNew(() => GetSomeOtherthing(myObject));
Task.WaitAll(t1, t2);
我使用AM / PM获取此格式导致转换失败,说无效的日期时间格式,有没有办法像顺序方法一样更改日期时间格式。
我如何将字符串转换为日期时间
Search.Date = Convert.ToDateTime(myObject.ToDate, CultureInfo.InvariantCulture);
答案 0 :(得分:1)
从/转换为字符串时始终明确指定文化。
在您的情况下,线程池线程可能具有与您期望的不同的CurrentCulture。
答案 1 :(得分:1)
如果要更改线程的文化,请创建自己的知道应用程序文化的任务计划程序。调度程序可以在执行任务之前调整文化。
这是一个示例调度程序......
class LocalizedTaskScheduler : TaskScheduler
{
public CultureInfo Culture { get; set; }
public CultureInfo UICulture { get; set; }
#region Overrides of TaskScheduler
protected override void QueueTask(Task task)
{
//Queue the task in the thread pool
ThreadPool.UnsafeQueueUserWorkItem(_ =>
{
//Adjust the thread culture
Thread.CurrentThread.CurrentCulture = this.Culture;
Thread.CurrentThread.CurrentUICulture = this.UICulture;
//Execute the task
TryExecuteTask(task);
}, null);
}
protected override bool TryExecuteTaskInline(Task task, bool taskWasPreviouslyQueued)
{
if (taskWasPreviouslyQueued)
{
return false;
}
// Try to run the task.
return base.TryExecuteTask(task);
}
protected override IEnumerable<Task> GetScheduledTasks()
{
//We have no queue
return Enumerable.Empty<Task>();
}
#endregion
}