.NET中使用多线程的问题。(UP有分)
我用 VC.NET 写了一个 COM 用来控制刻录机刻录DVD,用C#调用此COM。
当只有一台刻录机时一切使用正常。
现在需求改了,想用两台刻录机,也就是同一份文件同时刻两张盘。
于是我想到了多线程-》代码如下:
private void 点击刻录()
{
Thread t = new Thread(new ThreadStart(neroTest));
t.Start();
Thread t1 = new Thread(new ThreadStart(neroTest1));
t1.Start();
}
private void neroTest()
{
NeroObject.IBurnMain obj = new NeroObject.BurnMainClass();
string log ="";
string err ="";
obj1.Burn("C:\\X5.VCD","i","刻录测试盘",ref log1,ref err1);
}
neroTest1() 与 neroTest() 代码一样,就是 Burn 中 i 盘符 替换成了 h 盘符 (i,h,为光盘刻录机名称)
问题:
跟踪调试后发现neroTest() 与 neroTest1() 都执行了,但是只有neroTest() 所指定的盘符 i 盘 能刻录出东西来,h则刻不出来。 也就是先调哪个驱动器哪个能刻录,后调的那个则刻录不出来。
请帮忙分析一下原因!