Я сделал вопрос о сбое моего приложения без причины, и я получаю только с кодом выхода -2146233082 (0x80131506) ничего больше (видел сегодня).Поэтому я спросил о StackOverflow, и кто-то сказал мне, что причиной ошибки является код внутри BackGroundWorker
, который не может работать Start.Back.PerformClick ().И ни один из кодов BGW на самом деле не выполняется в рабочем потоке.
.Так что я изменяю его, но я бы знал, нормально ли это или нет, потому что он все еще падает без каких-либо исключений и чего-либо (я видел в журнале событий Windows и я ловлю необработанное исключение), я получаю только этот код -2146233082 (0x80131506) и ничего более, ниСобытие закрытия или закрытия формы сработало, оно остановилось.,
Я использую в качестве браузера "GeckoFX"
Здесь СТАРЫЙ код
private void Start_Back_Click(object sender, EventArgs e)
{
List<Links> tempList = getListFromWeb();
if (!backgroundWorker1.IsBusy)
{
backgroundWorker1.RunWorkerAsync(tempGoogle);
}
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
List<Links> temp = (List<Links>)e.Argument;
foreach (Links link in temp)
{
if (backgroundWorker1.CancellationPending)
{
e.Cancel = true; return;
}
_busy.WaitOne();
AddTabSafeThread(link.url);
}
Thread.Sleep(1000);
SearchSafeThread(ListToSearch);
}
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{ //Check Stuff Error and Cancelled
if (e.Error != null)
{... }
else if (e.Cancelled)
{ ....}
else //Else remove all tab
{
bool canRemove = this.TabCount >= 1;
if (canRemove)
{
WebBrowserTabPage tab = this.SelectedWebBrowserTagPage;
this.TabPages.Remove(tab);
tab.Dispose();
}
**Start.Back.PerformClick();** //Click on button again to start another time the backgroundworker
}
private void AddTabSafeThread(Browser tempBrowser)
{
if (this.tabs.InvokeRequired) //TabControl is tabs
{
this.tabs.Invoke(new m_SafeTab(AddTabSafeThread), new object[] { tempBrowser });
}
else
//in TabControl Class i create the WebBrowser And i call Navigate
{ this.tabs.addTab(tempBrowser.url);
//Do Stuff
}