关于X64程序对X86程序依赖的一个案例-第二篇
TwainServerSender:
namespace TwainCsServer
{
public class TwainServerSender
{
private NamedPipeServerStream _sender;
public static TwainServerSender _instance;
private TwainServerSender() { }
public static TwainServerSender Instance
{
get { return _instance?? (_instance = new TwainServerSender()); }
}
public void Start(string senderName)
{
_sender = new NamedPipeServerStream(senderName);
}
public void SendMessages(CommandType type, string data)
{
_sender.WaitForConnection();
try
{
string preData = (int)type + ":";
using (StreamWriter writer = new StreamWriter(_sender))
{
writer.WriteLine(preData + data);
writer.Flush();
}
}
catch (Exception ex)
{
Console.WriteLine("Send error: " + ex.Message);
}
}
public void Stop()
{
_sender.Close();
}
}
}
TwainServer:
namespace TwainCsServer
{
public class TwainServer
{
public static TwainServer _instance;
private TwainServer() { }
SynchronizationContext syncContext;
public static TwainServer Instance
{
get { return _instance ?? (_instance = new TwainServer()); }
}
public void setMainThread(SynchronizationContext syncContext)
{
this.syncContext = syncContext;
}
public void serverCentralControl()
{
TwainServerSender.Instance.Start("ScannerListener");
TwainServerReceiver.Instance.setThread(syncContext);
TwainServerReceiver.Instance.Start("ScannerOpenerator");
while (TwainServerReceiver.Instance.IsClosed())
{
TwainServerSender.Instance.Stop();
TwainServerReceiver.Instance.Stop();
break;
}
}
}
}

浙公网安备 33010602011771号