C#Task.Start()不适用于发布版本

时间:2018-03-29 03:57:06

标签: c# parallel-processing async-await task

我有一个程序运行一个方法抛出多个这样的任务

private static readonly Task[] Tasks = new Task[Properties.Settings.Default.NumberOfTasksToConsume];
public static void StartService()
{
    for (var i = 0; i < Tasks.Length; i++)
    {
        Tasks[i] = new Task(() => ProcessAbonents(Properties.Settings.Default.NumberOfRecordsToRetrive));
        Tasks[i].Start();
    }

    Task.WaitAll(Tasks);

    Task.Run(() => DeleteAbonents((int)EnumCategories.Social));

    if (BadPhoneNumbers.Count > 0)
        Task.Run(() => SaveBadNumbers((int)EnumCategories.Social));

    if (Errors.Count > 0)
        Task.Run(() => SendEmail());
}

它工作并进入&#34; ProcessAbone [&#34;当程序构建处于调试模式但构建处于释放模式时,for循环工作正常,但它不会输入此方法。

1 个答案:

答案 0 :(得分:0)

问题解决了。有Oracle.DataAccess.dll x64和我的项目在任何CPU,在调试它工作正常,但在发布可能它是在x86上。当我将项目改为x64 build时,它也适用于Release。