Ответ: Доступ к GUI с иного потока
Да! Спасибочки!
Но как пользоваться этим Invoke() ???
Уже настрочил делегатов:
public: delegate void MyDel();
...
public: void DoProcessing()
{
MyDel^ DelInst = gcnew MyDel(this, &mainForm::CleanProgressBar);
if (progressBar->InvokeRequired)
DelInst->Invoke();
DelInst = gcnew MyDel(this, &mainForm::ResetProgressBar);
if (progressBar->InvokeRequired)
DelInst->Invoke();
for each(KeyValuePair<String^,Int64> iCandidate in fileBase->candidates)
{
if (fileBase->IsDuplicate(iCandidate))
resultView->Rows->Add(iCandidate.Key , iCandidate.Value.ToString());
progressBar->Value++;
}
buttonStart->Enabled = true;
}
...
public: void CleanProgressBar()
{
progressBar->Value = 1;
}
public: void ResetProgressBar()
{
progressBar->Maximum = fileBase->candidates->Count;
}
Но все тот же екзепшн вылазит!
Сразу же при: progressBar->Value = 1; 
__________________
Blitz3D, XNA, WebGL, OpenGL, Unity3D
PC: ASUS A55VM Core i3 (2.4Ghz), 6 Gb RAM, Nvidia GF 630M GT 2Gb
|