2016-08-30 10 views
-1

私は初心者ドットネットです。 VB.NetコードをC#に変換する際に問題が発生しました。ここに私のVB.Netコードは... ...<Method>のオーバーロードはデリゲート 'System.Threading.WaitCallbackと一致しません。

Imports System.Threading 

Dim waitCallInitialize As New WaitCallback(AddressOf ServiceInitialize) 

ThreadPool.QueueUserWorkItem(waitCallInitialize) 

Private Shared Sub ServiceInitialize()   

    WebServiceClient.CreateCalendarService() 

    WebServiceClient.CreateClaimsService() 

End Sub 

そして、私の同等のC#コードされている

using System.Threading; 


WaitCallback waitCallInitialize = new WaitCallback(ServiceInitialize); 

ThreadPool.QueueUserWorkItem(waitCallInitialize); 


private static void ServiceInitialize() 
    { 
     WebServiceClient.CreateCalendarService(); 
     WebServiceClient.CreateClaimsService(); 

    } 

しかし、これは私にエラーを与える:

"No overload for 'ServiceInitialize' matches delegate 'System.Threading.WaitCallback'

誰かが提供できますこのための解決策とエラーの理由は?

+0

とする必要があります。他のすべての質問と同じエラーメッセージが表示され、その答えは同じです。メソッドの署名は委任署名と一致する必要があります。このような例が最も早い場合は、重複したマークを参照してください。 –

答えて

0

WaitCallback Delegateは、オブジェクトの状態を想定しています。 ServiceInitializeは:

+0

ありがとうございました....その作業..しかし、 'ServiceInitialize'の 'Object state'パラメータなしでVb.Netコードで正常に動作していました。この場合のC#とVb.Netの違いは何ですか? –

+0

ようこそ。私はVB.NETで大きな経験をしていないので、なぜそれが動作するのかわかりません。しかし、[ThreadPool.QueueUserWorkItem](https://msdn.microsoft.com/en-us/library/system.threading.threadpool.queueuserworkitem(v = vs.110).aspx)には2つのオーバーロードしかありません。それぞれ、WaitCallbackとWaitCallback Delegateがオブジェクトargを期待しています。 –

+1

@vivekvijayakumar:ドキュメントをお読みください:https://msdn.microsoft.com/en-us/library/bb531336.aspxこの例でVB.NETが動作する理由についての質問に対する答えがあります。 –

関連する問題