json - function not executing in correct step by step order -
i've got 2 webclient methods executing 1 after another.
problem is, first 1 executes finishes executing after second one.
my main issue that, in order second method excecute, first method first needs complete because second method requires data first method execute successfully.
{ string name; string surname; string url1 =" //sample/1"; string url2 ="//sample/2"; //execution point! public void listbox_selectionchagned(object sender, selectionchangedeventargs e) { var sel = ((listbox)contextmenupopup.child).selecteditem; subname = convert.tostring(sel); try { webclient webclient = new webclient(); uri uri = new uri(url1); webclient.openreadcompleted += new openreadcompletedeventhandler(webclient_openreadcompleted1); webclient.openreadasync(uri); } catch (exception ex) { messagebox.show(ex.message); } try { webclient webclient = new webclient(); uri uri = new uri(url2 + name); webclient.openreadcompleted += new openreadcompletedeventhandler(webclient_openreadcompleted2); webclient.openreadasync(uri); system.diagnostics.debug.writeline(url2 + name); } catch (exception ex) { messagebox.show(ex.message); } } //method1 void webclient_openreadcompleted1(object sender, openreadcompletedeventargs e) { datacontractjsonserializer ser = null; try { ser = new datacontractjsonserializer(typeof(observablecollection<subscriptions>)); observablecollection<subscriptions> alldata = ser.readobject(e.result) observablecollection<subscriptions>; foreach (data _dt in alldata) { name = first_name; surname = surname; system.diagnostics.debug.writeline("my first name " + name); } } catch (exception ex) { messagebox.show(ex.message); } } //method2 void webclient_openreadcompleted2(object sender, openreadcompletedeventargs e) { datacontractjsonserializer ser = null; try { ser = new datacontractjsonserializer(typeof(observablecollection<subscriptions>)); observablecollection<subscriptions> alldata = ser.readobject(e.result) observablecollection<subscriptions>; foreach (data _dt in alldata) { name = first_name; surname = surname; } } catch (exception ex) { messagebox.show(ex.message); } } public class data { public string first_name { get; set; } public string surname { get; set; } } }
summary: need value"name" in first method , use append url2 in second method?
but second method completes before first method?
then move following code selectionchanged event handler webclient_openreadcompleted1 event handler
webclient webclient = new webclient(); uri uri = new uri(url2 + name); webclient.openreadcompleted += new openreadcompletedeventhandler(webclient_openreadcompleted2); webclient.openreadasync(uri); system.diagnostics.debug.writeline(url2 + name);
that means, have make second request after successful completion of first request.
Comments
Post a Comment