tpide1=new Thread(new ThreadStart(pide1));
tjunta=new Thread(new ThreadStart(junta));
public void pide1()
{
while (cuadroactual1 < cuadrofinal)
{
if (cuadroactual3 == cuadroactual1 )
{
lector.lee1(cuadroactual1);
cuadroactual1++;
reproductorlisto1.Set();
}
}
}
public void junta()
{
while (cuadroactual3 < cuadrofinal)
{
AutoResetEvent.WaitAll(estanlistos);
lector.junta(cuadroactual3);
canvasjuntar.Dispatcher.Invoke((Action)(() => { canvasjuntar.Background = new ImageBrush(lector.BMS); }));
cuadroactual3++;
}
}
プログラムを実行すると、InvalidOperationException(「別のスレッドがオブジェクトを所有しているため、呼び出し元のスレッドはこのオブジェクトにアクセスできません」)がスローされます。これは、プログラムを実行するたびに異なる行で発生し、間違いがどこにあるかを確認できません(「ソースなし利用可能」)。(例外は、メソッド「junta()」内でデバッグしているときに常に表示されますが、常に同じ行にあるとは限りません)助けてください!