ajax 定时请求mysql_ajax定时轮询请求配合.net后台的多线程处理方法的应用

public void OtherObject(objectparamObj)

{//paramObj在子线程中只能以object对象来传参,对象中可包含多个参数

List parm = (List)paramObj;var inputSeq = parm[0].InputSeq;var listSeqPath = parm[0].ListSeqPath;try{//耗时接口这里交给子线程

var list = _IExonsLibService.RNACompare_E(inputSeq, 0.98f).ToList();

List rfs = new List();if (list.Count==0) {

ResultFilters resultFilters= newResultFilters();

resultFilters.FullNameParmPath=listSeqPath;

resultFilters.ResultInfo= "未找到匹配序列";

rfs.Add(resultFilters);

CallBackExonanalysis(rfs);//通过委托, 将数据回传给回调函数

}

List result = new List();foreach (var item inlist)

{

ExonViewModel info= newExonViewModel();

info.ResultSeq= item.GetElement(1).ToString().Substring(6);

info._id= ObjectId.Parse(item.GetElement(0).ToString().Substring(4));var findseq =_IExonsLibService.FindSeq(info._id);var findinfo =_IExonsLibService.FindExonInfo(findseq.InfoId);

info.FindSeq=findseq.Seq;

info.Info_id=findinfo._id;

info.StartExonPos= int.Parse(findinfo.StartCoordinate);

info.EndExonPos= int.Parse(findinfo.EndCoordinate);

info.GeneId=findinfo.GeneID;

info.ExonId=findinfo.ExonID;

info.InputSeq=inputSeq;int startComPos = info.ResultSeq.IndexOf("=");

info.StartComPos=startComPos;int endComPos = info.ResultSeq.LastIndexOf("=");

info.EndComPos=endComPos;//char[] usefulSeq = info.ResultSeq.Substring(startComPos, endComPos - startComPos + 1).ToCharArray();

info.EqualsCount = info.EndComPos - info.StartComPos + 1;

result.Add(info);

}var AN = result.OrderBy(p =>p.StartComPos).ToList();

List> unios = new List>();for (int i = 0; i

{

List couple = new List();

FilterViewModel filter= newFilterViewModel();

filter.Seq=AN[i].FindSeq;

filter.StartExonPos=AN[i].StartExonPos;

filter.EndExonPos=AN[i].EndExonPos;

filter.GeneId=AN[i].GeneId;

filter.ExonId=AN[i].ExonId;

filter.EqualsCount=AN[i].EqualsCount;

couple.Add(filter);int k =i;for (int j = i + 1; j < AN.Count; j++)

{if (AN[k].EndComPos

{

FilterViewModel filter2= newFilterViewModel();

filter2.Seq=AN[j].FindSeq;

filter2.StartExonPos=AN[j].StartExonPos;

filter2.EndExonPos=AN[j].EndExonPos;

filter2.GeneId=AN[j].GeneId;

filter2.ExonId=AN[j].ExonId;

filter2.EqualsCount=AN[j].EqualsCount;

couple.Add(filter2);

k= k + 1;

}

}

unios.Add(couple);

i= i + 1;

}

List Ac = new List();foreach (var items inunios)

{

CountWork n= newCountWork();foreach (var m initems)

{

n.Allcount+=m.EqualsCount;

}

Ac.Add(n);

}//List rfs = new List();

if (Ac.Count != 0)

{var max = Ac.Select(p =>p.Allcount).Max();var order = Ac.FindIndex(x => x.Allcount ==max);var resultFilter = unios[order].OrderBy(p =>p.StartExonPos).ToList();var q = resultFilter.GroupBy(x =>x.GeneId).ToList();foreach (var n inq)

{

ResultFilters resultFilters= newResultFilters();

resultFilters.GeneId=n.Key;var maxm = n.Select(p =>p.EndExonPos).Max();var minm = n.Select(x =>x.StartExonPos).Min();

resultFilters.SeqLength= maxm - minm + 1;

resultFilters.filterInfo=n.ToList();

resultFilters.FullNameParmPath=listSeqPath;

rfs.Add(resultFilters);

CallBackExonanalysis(rfs);//通过委托, 将数据回传给回调函数

}

}else{

rfs.Add(null);

CallBackExonanalysis(rfs);//通过委托, 将数据回传给回调函数

}

}catch{//List rfs = new List();//CallBackExonanalysis(rfs);//通过委托, 将数据回传给回调函数

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值