读书人

顶着有分!关于异步的有关问题-几个带参

发布时间: 2012-01-10 21:26:50 作者: rapoo

顶着有分!!关于异步的问题-------几个带参数的方法要求用异步来提交速度
菜鸟一只,看了异步,越来越糊涂,特来请问下,

提高读取数据,插入数据的速度,能用异步吗??


我有几个方法
如: SelectDomainAndAlexaInfo(url);
GetWhoisInfo(url);

这两个方法能同时运行吗?-------异步能实现吗?

下面这两个插入数据的方法也要求同时插入到数据库中
InsertToAlexa(GetGIDFromUrl(url), *,*,*,*,*,*, address,fxlink);
InsertToWHOIS(GetGIDFromUrl(url), GetWhoisXml(url));


if (GetCountFrom(url) == 1)//查找domain,alexa,whois是否存在数据,存在,则从数据库中取
{
SelectDomainAndAlexaInfo(url);
GetWhoisInfo(url);
}
else {
GetAlexaInfo(url);
GetWhoisInfo(url);
if (SelectDomain(url) == 1) //url在domain存在,
{
if (SelectCountAlexaWhois(url) == 0)//而不存在alexa,whois中,则插入数据
{
InsertToAlexa(GetGIDFromUrl(url), *,*,*,*,*,*, address,fxlink);
InsertToWHOIS(GetGIDFromUrl(url), GetWhoisXml(url));
}
}
}

如果哪位大侠有demo则更好

先在此多谢了

[解决办法]
up
[解决办法]
只能帮你顶了, 对这个不熟悉 zl
[解决办法]
up
[解决办法]
友情UP
[解决办法]
up
[解决办法]
速度慢了```
[解决办法]
up

[解决办法]
如果要确保两条语句都要执行,建议使用事务处理.....
[解决办法]
异步操做同一对象会出问题的啊,就LOCK问题啦
------解决方案--------------------


异步执行的方法一般都是成对出现的.
例如,如果你需要异步执行
void SelectDomainAndAlexaInfo(url)
这个方法.
1 申明委托
private delegate void SelectDomainAndAlexaInfoHandler(string url);

2 定义方法
private IAsyncResult BeginSelectDomainAndAlexaInfo(string url)
{
SelectDomainAndAlexaInfoHandler handler= new SelectDomainAndAlexaInfoHandler(SelectDomainAndAlexaInfo);
//开始异步执行,执行完成后回凋EndSelectDomainAndAlexaInfo.
handler.BeginInvoke(url, new AsyncCallback(EndSelectDomainAndAlexaInfo), handler);
}
private void EndSelectDomainAndAlexaInfo(IAsyncResult result)
{
//取出委托
SelectDomainAndAlexaInfoHandler handler=(SelectDomainAndAlexaInfoHandler)result.AsyncState;
//完成异步,如果对应同步方法有返回值则在此获得返回结果
handler.EndInvoke(result);
}

调用时可以这么写
BeginSelectDomainAndAlexaInfo(url);//这句代码执行非常快,它实际是开启了一个新线程去完成SelectDomainAndAlexaInfo,此时主线程可以继续执行去做其他事情.

对于GetWhoisInfo(url)这个方法也可以同理类推.

[解决办法]
委托运用恰当可以很大同幅度的提升数据访问速度

[解决办法]
请LZ先明白异步的主要用途,再研究不迟
[解决办法]
d
[解决办法]
帮顶

[解决办法]
我来!!!

[解决办法]
几天了```还没人帮解决?

读书人网 >asp.net

热点推荐