.net - C# How to open a FolderBrowserDialog in the middle of the code? -


i trying use folderbrowserdialog mentioned here:

var dialog = new system.windows.forms.folderbrowserdialog(); system.windows.forms.dialogresult result = dialog.showdialog(); 

if call dialog when button pressed, works fine. want open dialog in middle of code (there incoming file through socket, between receiving , saving try path save to), , won't happen.

here part of code called:

 byte[] clientdata = new byte[1024 * 5000];  int receivedbyteslen = clientsocket.receive(clientdata);   var dialog = new system.windows.forms.folderbrowserdialog();  system.windows.forms.dialogresult result = dialog.showdialog();  string filepath = dialog.selectedpath;   int filenamelen = bitconverter.toint32(clientdata, 0);  string filename = encoding.ascii.getstring(clientdata, 4, filenamelen);  binarywriter bwrite = new binarywriter(file.open(filepath + "/" + filename, filemode.append)); ;  bwrite.write(clientdata, 4 + filenamelen, receivedbyteslen - 4 - filenamelen);  bwrite.close(); 

how should try open dialog work?

as others stated in separate thread when trying call ui dialog.

in code posted can use wpf method begininvoke new action force folderbrowserdialog invoked in ui thread.

        system.windows.forms.dialogresult result = new dialogresult();         string filepath = string.empty;         var invoking = application.current.dispatcher.begininvoke(new action(() =>         {             var dialog = new system.windows.forms.folderbrowserdialog();             result = dialog.showdialog();             filepath = dialog.selectedpath;         }));          invoking.wait(); 

if creating separate thread can set apartmentstate sta , allow call ui dialogs without having invoke.

        thread testthread = new thread(method);         testthread.setapartmentstate(apartmentstate.sta);         testthread.start(); 

Comments

Popular posts from this blog

python - mat is not a numerical tuple : openCV error -

c# - MSAA finds controls UI Automation doesn't -

wordpress - .htaccess: RewriteRule: bad flag delimiters -