在C#中运行测试方法时抛出线程异常终止

时间:2018-09-28 10:28:17

标签: c# multithreading

我有一个方法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();
}

有人可以帮助我吗,为什么我在通过测试用例时会遇到此异常? 谢谢。

0 个答案:

没有答案