Click here to Skip to main content
Rate this: bad
good
Please Sign up or sign in to vote.
Multi threading in windows phone C# ?
 
How to do multithreading when i call a wcf service . One thread should call service and one thread should show processing.
Posted 18-Dec-12 21:34pm
Comments

1 solution

Rate this: bad
good
Please Sign up or sign in to vote.

Solution 1

Hi. I'm recommend to U to use Reactive Extensions for windows phone.
With help of this third-party library Rx(by the way it was wrriten by one of the LINQ founder ) you can achive such ability to call service on one thread and observe result on another.
 
For example let get json data from service:
 
WebClient webClient = new WebClient();
            webClient.Headers.Add("uid", LoginData.LoginName);
            webClient.Headers.Add("pass", LoginData.Password);
            webClient.Headers.Add("logonType", "0");
            var eventStream = Observable.FromEventPattern<DownloadDataCompletedEventArgs>(webClient, "DownloadDataCompleted").
                SubscribeOn(Scheduler.NewThread).Select(newData => newData.EventArgs.Result);
 
eventStream.ObserveOn(System.Threading.SynchronizationContext.Current).Subscribe(OnDatareceived,
                //on error
                ex =>
                {
                    System.Windows.MessageBox.Show(ex.Message);
                    ViewModel.ViewModelLocator.Logger.Error(string.Empty, ex);
                });
 
            webClient.DownloadDataAsync(new Uri(ConfigurationManager.AppSettings["loginUrl"]));
            weakClient.Dispose();
            weakClient = null;
 
void OnDatareceived(byte[] data)
		{
			if(data!=null){
//convert byte array to string and deserialize it to object
}
 
}
  Permalink  

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
0 Sergey Alexandrovich Kryukov 575
1 Kornfeld Eliyahu Peter 409
2 Maciej Los 369
3 DamithSL 196
4 OriginalGriff 188
0 OriginalGriff 6,353
1 DamithSL 4,854
2 Maciej Los 4,476
3 Kornfeld Eliyahu Peter 4,058
4 Sergey Alexandrovich Kryukov 3,917


Advertise | Privacy | Mobile
Web02 | 2.8.141220.1 | Last Updated 20 Dec 2012
Copyright © CodeProject, 1999-2014
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100