Кажется, ваша проблема в возврате значения из BackgroundWorker. Это можно сделать так:
В методе DoWork работника установите для e.Result
значение, которое вы хотите вернуть:
private void backgroundWorker_DoWork(object sender, DoWorkEventArgs e)
{
...
e.Result = File;
}
Затем в методе RunWorkerCompleted
вы можете получить доступ к этому значению в основном потоке:
private void backgroundWorker1_RunWorkerCompleted( object sender, RunWorkerCompletedEventArgs e)
{
string result = e.Result as string;
}
Я предположил, что File
здесь строка, но вы можете привести ее к нужному объекту.
Зачем вам это нужно в веб-приложении, я понятия не имею, но как это сделать, по крайней мере;)