这是从我的另一个问题开始的.
基本上,一旦我有代码访问该文件(将在一分钟内审查答案)什么是最好的测试方法?
我正在考虑创建一个方法,它只生成大量的BackgroundWorker或者其他东西,告诉他们所有加载/保存文件,并测试不同的文件/对象大小.然后,从线程中获取响应以查看它是否失败/成功/使世界崩溃等.
你能提出任何关于最佳方法的建议吗?正如我之前所说,这对我来说有点新鲜:)
继ajmastrean的帖子:
我正在使用控制台应用程序来测试Debug.Asserts :)
我最初使用BackgroundWorker来处理线程(因为我已经习惯了来自Windows开发)我很快就意识到当我执行测试时需要完成多个操作(线程)才能继续,我意识到这将是让它做到这一点有点破解.
然后我跟进了ajmastrean的帖子并意识到我应该使用Thread类来处理并发操作.我现在将使用这种方法进行重构(虽然是一种不同的方法).
在.NET中,ThreadPool
如果没有设置ManualResetEvent
s或AutoResetEvent
s ,线程将不会返回.我发现这些过度杀伤是一种快速的测试方法(更不用说创建,设置和管理的复杂程度).后台工作者也有一些复杂的回调等.
我发现有效的东西
创建一个线程数组.
设置ThreadStart
每个线程的方法.
启动每个线程.
加入所有线程(阻塞当前线程,直到所有其他线程完成或中止)
public static void MultiThreadedTest()
{
Thread[] threads = new Thread[count];
for (int i = 0; i < threads.Length; i++)
{
threads[i] = new Thread(DoSomeWork());
}
foreach(Thread thread in threads)
{
thread.Start();
}
foreach(Thread thread in threads)
{
thread.Join();
}
}