public class SerialPort
{
private HANDLE port;
this(string portName, void function(SerialPort, uint) dataReceivedEventHandler)
{
// ....
spawn(&dataReceivedEvent, dataReceivedEventHandler, cast(shared) port);
// ...
}
private static void dataReceivedEvent(void function(SerialPort, uint) dataReceivedEventHandler,
shared HANDLE port)
{
auto portHandle = cast(HANDLE) port;
// ...
}
}