【发布时间】:2021-10-31 15:06:25
【问题描述】:
我有一个存储过程来清理一些数据。
当我从 Program.cs 调用时,就像跟随它不起作用
static void Main(string[] args)
{
LogCleaner logCleaner = new LogCleaner(appConfiguration);
Task.Run(() => logCleaner.Start());
}
LogCleaner.Start 函数如下
try
{
using(UnitOfWork unitOfWork = new UnitOfWork(this.appConfiguration.DefaultConnectionString))
{
var result = unitOfWork.E3DLogs.CleanUpLogs(this.appConfiguration.CleanUpDayCount);
logger.Info("Clean up stored procedure executed, Result: " + result.ToString());
}
}
catch (Exception e)
{
logger.Error("Error while cleaning the log messages. Error Message: " + e.Message);
}
unitOfWork.E3DLogs.CleanUpLogs 如下
public int CleanUpLogs(int dayCount)
{
return _E3DDbcontext.CleanUpLogs(dayCount);
}
_E3DDbcontext.CleanUpLogs 函数如下
public virtual int CleanUpLogs(Nullable<int> dayCount)
{
var dayCountParameter = dayCount.HasValue ?
new ObjectParameter("dayCount", dayCount) :
new ObjectParameter("dayCount", typeof(int));
return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction("CleanUpLogs", dayCountParameter);
}
当我从 Program.cs 调用时,就像跟随它的工作一样
static void Main(string[] args)
{
LogCleaner logCleaner = new LogCleaner(appConfiguration);
logCleaner.Start();
}
【问题讨论】:
-
你永远不会等待你在 task.run() 中创建的任务。会不会是程序退出的速度快于任务的执行速度?
-
请定义“它不工作” - 实际上发生了什么
标签: c# multithreading entity-framework