0
我有一个正在工作的应用程序,并且具有可变数量的迭代的循环。我在这个循环中有一个函数调用。然后我试图改变程序来启动这个函数作为一个单独的线程。我设置了一个单元测试来运行,并且在完成任何工作之前应用程序停止运行。C#TPL应用程序停止运行
我已经设置了循环以在一个线程上进行一次迭代和调试。它在函数顶部附近停止运行,而不总是在同一行上,但在同一区域中,我试图制作具有数据表和数据行的对象的副本,其中可以在每个线程中更改选择。以下是代码,并且在此区域中调试时它会一直停止,但到达的行会有所不同。
// main thread called by unit test
...
for(...
{
Task compute = Task.Factory.StartNew(() => results.Add(Compute(originalObject)));
}
...
private ReturnObject Compute(MyObject originalObject)
{
...
// near top of function after some assignment statements
// of some string and boolean variables
MyObject myObject = originalObject.Copy;
// never makes it to the next line
...
}
// MyObject class
private MyObject(DataTable dtTable)
{
_dataService = new DataService();
_dataTable = dtTable.Copy();
_dataRows = _dataTable.Select();
}
public MyObject Copy()
{
MyObject copy = new MyObject(_dtTable);
return copy;
}
// DataService class
public DataService()
{
_oleDbConnection = null;
}
入口点是什么样的?我的猜测是,这是一个控制台应用程序,只要入口点代码完成就会结束。但是,这只是一个猜测而没有看到代码 –