1.使用

procedure Parallel.Async(task: TProc; taskConfig: IOmniTaskConfig);

匿名委托访问网站

program main;

{$APPTYPE CONSOLE}

{$R *.res}

uses
System.SysUtils,
OtlParallel, OtlTask,
IdHttp,
Web.HTTPApp,
System.classes, WinApi.Windows; procedure HttpGet(Host, URL: String);
var
http: TIdHttp;
begin
http := TIdHttp.Create; // http.Request.Host := Host;
http.Request.Method := 'GET';
http.Request.UserAgent := 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36';
http.Request.AcceptLanguage :='zh-CN,zh;q=0.8';
http.Get(Host + URL); Writeln('===================Response Header==========================');
Writeln('Server: ' + http.Response.Server);
Writeln('Status Code :' + http.Response.ResponseCode.ToString);
Writeln('CharSet:' + http.Response.CharSet);
Writeln('ContentLength:' + http.Response.ContentLength.ToString());
Writeln('ContentType:' + http.Response.ContentType);
http.Free;
end;
begin
Parallel.Async(
procedure(const task: IOmniTask)
begin Writeln('Thread ID ' + GetCurrentThreadID.ToString());
HttpGet('http://zh.wikipedia.org/', String(HttpEncode('wiki/文档')));
//访问主界面资源使用Invoke Invoke主线程运行, 访问GUI
// task.Invoke();
end
); Parallel.Async(
procedure(const task: IOmniTask)
begin
Writeln('Thread ID ' + GetCurrentThreadID.ToString());
HttpGet('http://zh.wikipedia.org/', String(HttpEncode('wiki/文档')));
//访问主界面资源使用Invoke
// task.Invoke();
end
); Parallel.Async(
procedure(const task: IOmniTask)
begin
Writeln('Thread ID ' + GetCurrentThreadID.ToString());
HttpGet('http://zh.wikipedia.org/', String(HttpEncode('wiki/文档')));
//访问主界面资源使用Invoke
// task.Invoke();
end
);
writeln('异步执行');
Readln;
end.

Omnithreadlibary学习(2)-IOmniTask异步执行-LMLPHP

05-11 21:56