c# - Background Worker Updating from a different class (preferably via events) -


i have background worker in gui class.

private void bw_dowork(object sender, doworkeventargs e) {     progressclass obj = new progressclass();     importer tradeimporter = e.argument importer;     backgroundworker worker = sender backgroundworker;     list<tradeuploadinfo> list = obj.allocatetrades2(tradeimporter, false);     e.result = list; //passes list processing } 

importer own class. now, allocatetrades2 method has processing done in it.

my question is, how go performing bw.progressreport inside allocatetrades2 method, in different class without passing bw parameter?

would great if explained me how events, if there elegant way. i'm open ideas.

if don't want pass in entire bgw (justifiably so) not expose more needs know, 1 option pass in delegate assign reportprogress call to.

adjust signature of allocatetrades2 be:

public list<tradeuploadinfo> allocatetrades2(     importer importer, bool flag, action<int> reportprogress) 

invoke reportprogress delegate appropriate within method.

then adjust call allocatetrades2 so:

obj.allocatetrades2(tradeimporter, false,      progress => worker.reportprogress(progress)); 

Comments

Popular posts from this blog

python - How to create a legend for 3D bar in matplotlib? -

java - Multi-Label Document Classification -

php - Dynamic url re-writing using htaccess -