Click here to Skip to main content
11,811,971 members (71,877 online)
Rate this: bad
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 20:34pm

1 solution

Rate this: bad
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);
                //on error
                ex =>
                    ViewModel.ViewModelLocator.Logger.Error(string.Empty, ex);
            webClient.DownloadDataAsync(new Uri(ConfigurationManager.AppSettings["loginUrl"]));
            weakClient = null;
void OnDatareceived(byte[] data)
//convert byte array to string and deserialize it to object

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

  Print Answers RSS
0 KrunalRohit 319
1 Abhinav S 215
2 Palash Mondal_ 210
3 CHill60 180
4 CPallini 135
0 OriginalGriff 3,893
1 KrunalRohit 2,441
2 CPallini 2,240
3 Maciej Los 2,155
4 ppolymorphe 1,725

Advertise | Privacy | Mobile
Web04 | 2.8.151002.1 | Last Updated 20 Dec 2012
Copyright © CodeProject, 1999-2015
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