In addition to Weibo, there is also WeChat
Please pay attention
WeChat public account
Shulou
2025-09-24 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Development >
Share
Shulou(Shulou.com)06/02 Report--
This article mainly shows you "how to achieve WCF callback", the content is easy to understand, clear, hope to help you solve your doubts, let the editor lead you to study and learn "how to achieve WCF callback" this article.
Because the WCF callback method does not run in the main thread, if the WCF callback method needs to update the interface related to the result of the asynchronous call, such as the lbMessage control in this example, you need to Marshal the callback call to the synchronization context of the current main program interface. We can marshal the call using SynchronizationContext and its SendOrPostCallback delegate:
Public ExplorerClientForm () {InitializeComponent (); m_synchronizationContext = SynchronizationContext.Current;} private SynchronizationContext m_synchronizationContext
Then the WCF callback method is modified to:
/ / callback method void OnTransferCompleted (IAsyncResult result) {Stream stream = m_service.EndTransferDocument (result); result.AsyncWaitHandle.Close (); SendOrPostCallback callback = delegate {lbMessage.Text = string.Format ("The file {0} had been transfered sucessfully.", m_doc.FileName);}; m_synchronizationContext.Send (callback,null);}
When calling an asynchronous method, I define the service proxy object as a private field because the calls to the BeginTransferDocument () and EndTransferDocument () methods may be in different method bodies. If you want to define the service object as a local variable, you can pass the proxy object to the method's asyncState parameter when you call the BeginTransferDocument () method, and then get the exact service proxy object through IAsyncResult before calling the EndTransferDocument () method:
M_service.BeginTransferDocument (masked doc.OnTransferCompletedOnTransferComplete masking service)
After you pass in m_service as an asyncState object, you can get the service proxy object based on it before calling the EndTransferDocument () method:
IDocumentsExplorerService m_service = result.AsyncState as IDocumentsExplorerService; Stream stream = m_service.EndTransferDocument (result); / / the above is all the content of the article "how to implement WCF callback". Thank you for reading! I believe we all have a certain understanding, hope to share the content to help you, if you want to learn more knowledge, welcome to follow the industry information channel!
Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.
Views: 0
*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.
The market share of Chrome browser on the desktop has exceeded 70%, and users are complaining about
The world's first 2nm mobile chip: Samsung Exynos 2600 is ready for mass production.According to a r
A US federal judge has ruled that Google can keep its Chrome browser, but it will be prohibited from
Continue with the installation of the previous hadoop.First, install zookooper1. Decompress zookoope
About us Contact us Product review car news thenatureplanet
More Form oMedia: AutoTimes. Bestcoffee. SL News. Jarebook. Coffee Hunters. Sundaily. Modezone. NNB. Coffee. Game News. FrontStreet. GGAMEN
© 2024 shulou.com SLNews company. All rights reserved.