我有一个方法Create
执行Db插入。我还有一个委托人Sampledelegate
,在单独的线程中调用Create
方法。
public delegate int Sampledelegate(int num);
class Activity
{
public int AddNum(int num)
{
Console.WriteLine("Value of Num: {0}", num);
Object obj = new object();
Thread newThread = new Thread(this.Create);
newThread.Start(obj);
return num;
}
void Create(object obj)
{
try
{
Memo memo = (Memo)obj;
//DAO initialization which internally includes extracting
connection to DB
WorkpacketDao workPacketDao = new WorkpacketDao();
workPacketDao.CreateMemo(memo);
}
catch (Exception ex)
{
Logger.Info(ex.Message);
}
}
}
现在,我已经编写了一个测试用例,以检查它是否工作正常。 所以我的测试用例是
public void AddNumTest()
{
AddNum(1);
Sampledelegate samdel = new Sampledelegate(AddNum);
}
在运行此测试用例时,我得到一个异常:Thread was being aborted
方法中的create
。
但是,当我通过AddNum
方法之类的另一种方法运行委托人main
时,没有得到此异常。
通过另一种方法呼叫AddNum
:
static void Main(string[] args)
{
Activity activity = new Activity();
activity.AddNum(1);
Sampledelegate samdel = new Sampledelegate(activity.AddNum);
Console.ReadKey();
}
有人可以帮助我吗,为什么我在通过测试用例时会遇到此异常? 谢谢。