0
我使用用ANSI C編寫的自定義DLL創建數據發送器的項目。我的目標是發送大量的數據,每個數據必須通過構建OnDataSendingDone
回調後發送確認。來自外部回調的事件
問題是我不知道如何將該回調掛接到事件,所以我可以在每個SendByte
之後等待它。也許事件不是一個好主意。
我的問題是:如何在SendByte
之後等待OnDataSendingDone
回調?
請給我一些線索。以下是代碼片段:
class LibWrapper
{
[DllImport(dllPath, CallingConvention = CallingConvention.Cdecl, EntryPoint = "SetCallback")]
public static extern bool SetCallback(byte functype, Delegate func);
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public delegate void CallbackDelegate(UInt32 handle);
private static CallbackDelegate OnDataSendingDone;
public void OnDataSendingDoneCallback(CallbackDelegate callback)
{
OnDataSendingDone_ft = new CallbackDelegate2(callback);
SetCallback(FT_DATASENDINGDONE, OnDataSendingDone_ft);
}
}
class Transmitter
{
LibWrapper lib = new LibWrapper();
byte[] data = new byte[10];
public void OnDataSendingDone(UInt32 handle)
{
return;
}
lib.OnDataSendingDoneCallback(OnDataSendingDone);
public void TransmitData()
{
// here: sequential data transmission
foreach (byte b in data)
{
lib.SendByte(b);
// here: wait for OnDataSendingDone
}
}
}