小编use*_*191的帖子

在SERVICE和Web /桌面应用程序之间进行通信

什么是推荐的服务和桌面应用程序或网页之间的通信方式?

我希望该服务能够完成所有工作,但管理/管理/报告可通过网络或桌面进行.(它将用C#编写.Net 4.0)

它命名为管道吗?插座?wcf?休息?肥皂 ?其他?什么是最佳做法?

任何信息,将不胜感激.

该服务需要实时有效,因此任何通信都需要异步.

谢谢Andrew

更新1 - 服务监视网络流量REALTIME即服务.客户端可以是本地的,也可以是远程的(使用ASP.NET/MVC甚至Silverlight).客户端不需要实时数据,但应该查询SETTINGS,Statistics,Logs等.

.net asp.net service desktop communication

5
推荐指数
1
解决办法
1680
查看次数

Delphi 2009及更高版本中的Capture控制台

下面的代码适用于Delphi XE,但2400缓冲区非常难看.

任何人都有一些关于清理这个例程的建议吗?并使2400限制消失(不定义64000缓冲区).

谢谢


procedure TForm1.Button1Click(Sender: TObject);
begin
     CaptureConsoleOutput('c:\windows\system32\ipconfig','',Memo1);
end;

procedure TForm1.CaptureConsoleOutput(const ACommand, AParameters: String; AMemo: TMemo); const CReadBuffer = 2400; var saSecurity: TSecurityAttributes; hRead: THandle; hWrite: THandle; suiStartup: TStartupInfo; piProcess: TProcessInformation; pBuffer: array[0..CReadBuffer] of AnsiChar; dRead: DWord; dRunning: DWord; begin saSecurity.nLength := SizeOf(TSecurityAttributes); saSecurity.bInheritHandle := True; saSecurity.lpSecurityDescriptor := nil;

if CreatePipe(hRead, hWrite, @saSecurity, 0) then begin FillChar(suiStartup, SizeOf(TStartupInfo), #0); suiStartup.cb := SizeOf(TStartupInfo); suiStartup.hStdInput := hRead; suiStartup.hStdOutput := hWrite; suiStartup.hStdError := hWrite; suiStartup.dwFlags := STARTF_USESTDHANDLES or STARTF_USESHOWWINDOW; suiStartup.wShowWindow := SW_HIDE; …

Run Code Online (Sandbox Code Playgroud)

delphi unicode console capture

3
推荐指数
1
解决办法
2000
查看次数

C#加速字符串?

struct mydata
{
    public int id;
    public string data;
}

class Program
{
    static void Main(string[] args)
    {
        List<mydata> myc = new List<mydata>();

        Stopwatch stopwatch = new Stopwatch();

        stopwatch.Start();

        for (int i = 0; i < 1000000; i++)
        {
            mydata d = new mydata();

            d.id = i;
            d.data = string.Format("DataValue {0}",i);

            myc.Add(d);
        }

        stopwatch.Stop();
        Console.WriteLine("End: {0}", stopwatch.ElapsedMilliseconds);
}
Run Code Online (Sandbox Code Playgroud)

这个代码上面的代码是如此慢......?
在较旧的笔记本电脑上,时间是:C#代码高于:1500ms类似的代码在Delphi:450ms ....

然后我将代码更改为KeyValue/Pair(见下文):

Stopwatch stopwatch = new Stopwatch();

        stopwatch.Start();

        var list = new List<KeyValuePair<int , string>>();

        for (int i = 0; …
Run Code Online (Sandbox Code Playgroud)
Run Code Online (Sandbox Code Playgroud)

c# string performance

3
推荐指数
1
解决办法
820
查看次数