c#aspx线程的简单示例
我正在搜索一个非常简单的例子,用c#为aspx站点使用c#aspx线程的简单示例,c#,asp.net,multithreading,C#,Asp.net,Multithreading,我正在搜索一个非常简单的例子,用c#为aspx站点使用threads。为vb.net找到了一些,但无法让它们与c#一起工作 我需要一个线程或后台工作人员,用于我的aspx站点查询数据库,并使用响应的值进行一些计算。这需要很长时间,我想更新我的网站,同时计算通知用户 我用一个ajax更新面板尝试了它,但是得到了一个超时错误(认为计算时间太长)。也尝试过,但得到一个错误,异步线程不允许 那么,有人有一个链接或一个简单的例子吗?谢谢大家! 您可以使用PageAsyncTask类,而不是直接使用线程类。
threads
。为vb.net找到了一些,但无法让它们与c#一起工作
我需要一个线程
或后台工作人员
,用于我的aspx站点查询数据库,并使用响应的值进行一些计算。这需要很长时间,我想更新我的网站,同时计算通知用户
我用一个ajax更新面板尝试了它,但是得到了一个超时错误(认为计算时间太长)。也尝试过,但得到一个错误,异步线程不允许
那么,有人有一个链接或一个简单的例子吗?谢谢大家! 您可以使用PageAsyncTask类,而不是直接使用线程类。以下页面还包括一个示例:请从asp.net官方网站上阅读此链接,其中还包含代码示例:
对于更高级别的视图:
它不是后台工作程序,而是新的基于异步/等待任务的异步
这是第一篇文章中的同步与异步方法示例
同步示例:
public List<Gizmo> GetGizmos()
{
var uri = Util.getServiceUri("Gizmos");
using (WebClient webClient = new WebClient())
{
return JsonConvert.DeserializeObject<List<Gizmo>>(
webClient.DownloadString(uri)
);
}
}
公共列表GetGizmos()
{
var uri=Util.getServiceUri(“Gizmos”);
使用(WebClient WebClient=new WebClient())
{
返回JsonConvert.DeserializeObject(
webClient.DownloadString(uri)
);
}
}
相对于异步:
public async Task<List<Gizmo>> GetGizmosAsync()
{
var uri = Util.getServiceUri("Gizmos");
using (HttpClient httpClient = new HttpClient())
{
var response = await httpClient.GetAsync(uri);
return (await response.Content.ReadAsAsync<List<Gizmo>>());
}
}
public异步任务GetGizmosAsync()
{
var uri=Util.getServiceUri(“Gizmos”);
使用(HttpClient HttpClient=new HttpClient())
{
var response=wait-httpClient.GetAsync(uri);
return(wait response.Content.ReadAsAsync());
}
}
在本例中,这些方法包含在GizmoService类中,它是您的“后端”C#。您可以从控制器调用以下方法:
public ActionResult Gizmos()
{
ViewBag.SyncOrAsync = "Synchronous";
var gizmoService = new GizmoService();
return View("Gizmos", gizmoService.GetGizmos());
}
public async Task<ActionResult> GizmosAsync()
{
ViewBag.SyncOrAsync = "Asynchronous";
var gizmoService = new GizmoService();
return View("Gizmos", await gizmoService.GetGizmosAsync());
}
public ActionResult Gizmos()
{
ViewBag.SyncOrAsync=“同步”;
var gizmoService=新的gizmoService();
返回视图(“Gizmos”,gizmosservice.GetGizmos());
}
公共异步任务GizmosAsync()
{
ViewBag.SyncOrAsync=“异步”;
var gizmoService=新的gizmoService();
返回视图(“Gizmos”,等待gizmosservice.GetGizmosAsync());
}