草庐IT

SvelteAdmin中后台

全部标签

c# - 后台 worker 调用之间是否保留了线程本地存储?

是否重用了后台工作线程?具体来说,如果我在backgroundworker的DoWork()方法中设置了一个命名数据槽(线程本地存储),该数据槽的值是否会持续存在,有可能在以后的某个时间被其他线程找到?我不会这么想,但我有这个错误...编辑:Thisblogpost建议BackGroundWorker使用ThreadPool,这意味着线程被重用。所以问题就变成了;重复使用的线程是否可能在调用之间持久保存线程本地存储? 最佳答案 线程池在重用线程时,不会清除线程本地存储中的数据,也不会清除标记有ThreadStaticAttribut

c# - 具有返回值的 Hangfire 后台作业

我正在从Task.Run切换至Hangfire.在.NET4.5+中Task.Run可以回Task这让我可以运行返回void以外的任务.我通常可以等待并通过访问属性MyReturnedTask.Result来获取我的任务结果我的旧代码示例:publicvoidMyMainCode(){ListlistStr=newList();listStr.Add("Bob");listStr.Add("Kate");listStr.Add("Yaz");List>listTasks=newList>();foreach(stringstrinlistStr){TaskreturnedTask=Ta

c# - 如何使用 WebAPI、WCF、SignalR 和后台任务在 MVC Web 应用程序中配置简单的注入(inject)器容器和生活方式

简单的注入(inject)器文档提供了关于如何为WebRequest、WebAPI、WCF等设置容器的很好的示例,但这些示例一次只针对一种技术/生活方式。我们的Web应用程序同时使用了其中的大部分!我不清楚如何配置容器以适应多种生活方式。假设我有一个带有WebAPI的MVC项目。我有以下对象:MyDbContext:我的实体代码优先数据库上下文由MyDataProvider实现的IMyDataProvider:包含查询逻辑并使用MyDbContextMyController:使用IMyDataProvider的MVCControllerMyApiController:使用IMyData

c# - 可以在后台线程构建表单,然后在 UI 线程上显示

更新:总结一下我的问题归结为:我希望构建.NET窗体和控件不会创建任何窗口句柄——希望该过程被延迟到Form.Show/Form.ShowDialog谁能证实或否认这是否属实?我有一个带有选项卡控件的大型WinForms表单,表单上有许多控件,在加载时会暂停几秒钟。我已将其缩小到设计器在InitializeComponent中生成的代码,而不是我在构造函数或OnLoad中的任何逻辑。我很清楚我不能尝试在主UI线程以外的任何线程上与UI交互,但我想做的是让应用程序预加载此表单(运行构造函数)在后台,所以一旦用户想要打开它,它就可以立即显示在UI线程上。但是,在后台线程中构建时,在设计器中

c# - 为什么 Microsoft.Office.Interop.Excel.Application.Quit() 让后台进程继续运行?

以下代码使MicrosoftExcel后台进程继续运行,直到我的程序退出:varexcelApplication=newApplication();varworkbooks=excelApplication.Workbooks;varworkbook=excelApplication.Workbooks.Open(file.FullName);workbook.Close();excelApplication.Workbooks.Close();excelApplication.Quit();Marshal.ReleaseComObject(workbook);Marshal.Rele

c# - 启动长时间后台任务

用户在我的网站上请求一些页面。我想做什么?向用户发送快速答复并启动需要很长时间的后台任务。看起来像:publicActionResultindex(){vartask=newTask(Stuff);//starttaskasynctask.start();returnView();}publicvoidStuff(){//longtimeoperation}我该怎么做? 最佳答案 您可以向TaskStartNew()方法传递一个参数,指示您正在启动的任务是“长时间运行”的,这会提示任务计划程序在新线程上启动任务。vartask=Ta

c# - 如何强制 Task.Factory.StartNew 进入后台线程?

我已经看到许多其他类似的问题,但没有在那里找到我的答案。我的问题是我正在使用以下流程创建线程:privatevoidbtn_Click(objectsender,EventArgse){service.GetCount((count,ex)=>{if(ex!=null)return;for(inti=0;icallback){varcallingThread=TaskScheduler.FromCurrentSynchronizationContext();Funcaction=()=>{returnclient.GetCount();//Synchronousmethod,could

c# - 更新后台 worker winforms中的标签文本

我正在使用BackGroundWorker类在sqlserver中插入一些值。我在这里有for循环来插入值。我正在使用以下代码publicvoidbw_Convert_DoWork(objectsender,DoWorkEventArgse){e.Result=e.Argument;for(inti=0;i我如何在这里更新Label1文本 最佳答案 这应该可以从后台线程更改GUI。Label1.Invoke((MethodInvoker)delegate{Label1.Text=i.ToString()+"FilesConverte

c# - 创建者更新后无法注册 GattCharacteristicNotificationTrigger 后台任务

后台任务注册代码如下:varbuilder=newBackgroundTaskBuilder();builder.Name=name;builder.TaskEntryPoint=typeof(BackgroundTaskClass).FullName;vartrigger=newGattCharacteristicNotificationTrigger(characteristic);builder.SetTrigger(trigger);btr=builder.Register();list中的条目是:Register()方法触发此错误:Accessisdenied.YourApp

c# - 如何在开机时启动后台任务 - Windows 应用商店应用

我的平板电脑运行Windows8.1专业版。它有一个后台任务,每15分钟由时间触发器触发一次。它有效,很公平。问题是我需要在我的设备每次启动(启动应用程序)时自动启动我的后台任务。我用这个代码注册了我的背景:builder.Name="bikePositionUpdate";builder.TaskEntryPoint="BackgroundTaskGps.BikeGPSPositionUpdateBackgroundTask";builder.SetTrigger(newTimeTrigger(15,false));////addingconditionSystemCondition