首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >客户端交互后Asp.net线程无法工作

客户端交互后Asp.net线程无法工作
EN

Stack Overflow用户
提问于 2015-08-14 13:02:50
回答 1查看 251关注 0票数 2

我正在asp.net/C#中的一个应用程序中工作,在这个应用程序中,我集成了一个第三方产品(使用他们支持的API)。

现在,在应用程序的特定Button_Click()事件中,我想执行三个任务。

  1. 第一个是最简单的,将数据插入到sql服务器并向第三方服务器发送相同的日期,就完成了。
  2. 第二复杂的 one是我在下面阐述的。
  3. status(data)中获取task2并在数据库中进行操作。

这里,我需要检查第三方服务器是否有一个特定的交换机。开关是指数据是否存在。我使用API的一个API方法来检索状态,它将返回ACTIVE/INACTIVE

但问题是,getdata()方法将需要几分钟来验证该开关,比如~2-7 Mins,直到应用程序不再空闲,用户才会执行应用程序中提供的任何操作。

我所做的是:

完成Task1,并在单独的线程中创建task2 ,它可以正常工作一段时间,因此第三个任务也可以完成它。

但是线程不像预期的那样工作,如果用户执行任何其他操作,如重新加载页面或任何其他操作,线程就会被中断和停止。所以task2task3都失败了。

还有其他解决办法吗?

EN

回答 1

Stack Overflow用户

发布于 2015-08-17 12:36:55

与任何其他面向web的体系结构一样,ASP.NET是一个完全面向多线程的环境,来自客户端的所有请求都由一个新的(或池) Thread处理,并且在这个句柄中创建的所有后台或子线程都在请求句柄完成后被销毁(中止)。

因此,您不能确定后台线程中的操作是否会完成。如前所述,您必须创建一个运行所有所需工作并向客户端提供结果的位置。 end point非常简单(google可以为您提供几十个链接),但我建议您深入分析到底需要什么类型的绑定,因为有许多变体,而且我认为TCPHTTP绑定不适合您的需要。

我建议您选择一个命名管道,因为web应用程序和窗口服务都是.NET应用程序。所以已经有关于这个的问题了,例如,您可以看到下面一个:WCF named pipe minimal example

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32010804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档