草庐IT

rb_thread_select

全部标签

c# - 在 LINQ Select 中赋值?

我有以下查询:drivers.Select(d=>{d.id=0;d.updated=DateTime.Now;returnd;}).ToList();drivers是一个包含不同ID和更新值的列表,因此我正在更改Select中的值,但这是执行此操作的正确方法。我已经知道我不会将驱动程序重新分配给驱动程序,因为Resharper对此有所提示,所以我想如果这样会更好:drivers=drivers.Select(d=>{d.id=0;d.updated=DateTime.Now;returnd;}).ToList();但这仍然是有人应该为驱动程序列表中的每个元素分配新值的方式吗?

c# - 为什么 Linq to Entity Select Method 翻转投影列表属性?

我对linqtoentity/Json/MVC.net4有最奇怪的行为我有这段代码,出于某种奇怪的原因,所有其他列表的属性顺序都颠倒了。varoutput=db.FooBar.Where(a=>a.lookupFoo==bar).Select(a=>newList{//value'sarethesameperrow//fordemonstrationsake.a.fooBarA,//Always12.34a.fooBarB,//Always12.34a.fooBarC,//Always0a.fooBarD//Always0//lazycastingtodoublefromint});r

c# - Linq order by aggregate in select { }

这是我正在处理的一个:varfStep=frominspinsq.Inspectionswhereinsp.TestTimeStamp>dStartTime&&insp.TestTimeStamp我想按所选投影中的一个或多个字段排序。 最佳答案 最简单的更改可能是使用查询延续:varfStep=frominspinsq.Inspectionswhereinsp.TestTimeStamp>dStartTime&&insp.TestTimeStamp老实说,这基本上等同于使用“let”——真正的区别在于let引入了一个新范围变量,而查

c# - Thread.Sleep(TimeSpan) 有多准确?

我遇到过间歇性失败的单元测试,因为耗时不是我期望的。此测试的示例如下:Stopwatchstopwatch=newStopwatch();stopwatch.Start();TimeSpanoneSecond=newTimeSpan(0,0,1);for(inti=0;i大部分时间都通过了,但至少有一次失败了,因为:预期:大于等于2999但是是:2998我不明白它怎么可能少于3秒。Thread.Sleep或Stopwatch是否存在我不知道的准确性问题?就像对下面一些问题的更新一样。正在接受单元测试的场景是一个类,它允许调用一个方法来执行某些操作,如果它失败,请稍等片刻并调用该方法。上

C# : How to pause the thread and continue when some event occur?

当某些事件发生时,如何暂停线程并继续?我希望线程在单击按钮时继续。有人告诉我thread.suspend不是暂停线程的正确方法。还有其他解决方案吗? 最佳答案 你可以使用System.Threading.EventWaitHandle.EventWaitHandle会阻塞,直到收到信号为止。在您的情况下,它将通过按钮单击事件发出信号。privatevoidMyThread(){//dosomestuffmyWaitHandle.WaitOne();//thiswillblockuntilyourbuttonisclicked//co

c# - 何时在线程安全锁定代码中使用 'volatile' 或 'Thread.MemoryBarrier()'? (C#)

我什么时候应该使用volatile/Thread.MemoryBarrier()来保证线程安全? 最佳答案 当您想跨线程访问变量而不锁定时,您可以使用volatile/Thread.MemoryBarrier()。原子变量,例如int,总是一次性读取和写入整个变量。这意味着您永远不会在另一个线程更改它之前获得一半的值,而在它更改之后获得另一半。因此,您可以在不同线程中安全地读取和写入值,而无需同步。但是,编译器可能会优化一些读写操作,您可以使用volatile关键字来阻止这些操作。例如,如果您有这样的循环:sum=0;foreach

c# - WPF 调度程序 {"The calling thread cannot access this object because a different thread owns it."}

首先我需要说我是WPF和C#的菜鸟。应用程序:创建Mandelbrot图像(GUI)在这种情况下,我的调度员工作得很好:privatevoidprogressBarRefresh(){while((con.Progress)尝试使用以下代码执行此操作时,我收到了消息(标题):bmp=BitmapSource.Create(width,height,96,96,pf,null,rawImage,stride);this.Dispatcher.Invoke(DispatcherPriority.Send,newAction(delegate{img.Source=bmp;ViewBox.C

c# - 如何使用 DataTable.Select() 选择 Null/空值?

我从db填充的数据表在某些单元格中有空值。结果数据库SP返回的结果为Null,但在DataTable中这些值显示为“”或空单元格。请指导我如何使用Select()来选择这些dbnull/空行。谢谢 最佳答案 检查null的正确方法是检查它:DataRow[]myResultSet=myDataTable.Select("[COLUMNNAME]isnull"); 关于c#-如何使用DataTable.Select()选择Null/空值?,我们在StackOverflow上找到一个类似的问

c# - 使用 Thread.Sleep 等待的替代方法

首先,我问的不是与C#-AlternativetoThread.Sleep?相同的问题,或AlternativetoThread.SleepinC#?.我认为我没有错误地使用它,并且在特定情况下需要一个真正的替代品。在代码分析运行期间,我看到了一个令人惊讶的违规行为:UsageofThread.Sleep()isasignofflaweddesign.此违规导致PeterRichie'sarticle关于为什么这构成糟糕的设计。我们都知道线程创建是昂贵的,线程中的阻塞意味着对池的争用。我们也知道每个线程都会分配一个meg的内存,所以它应该有一个短的生命周期,阻塞在UI上是邪恶的,使用s

c# - 懒惰<T> : "The function evaluation requires all threads to run"

我有一个带有一些静态属性的静态类。我在一个静态构造函数中初始化了所有这些,但后来意识到这是浪费,我应该在需要时延迟加载每个属性。所以我转而使用System.Lazytype来完成所有肮脏的工作,并告诉它不要使用它的任何线程安全功能,因为在我的例子中执行总是单线程的。我得到了以下类(class):publicstaticclassQueues{privatestaticreadonlyLazyg_Parser=newLazy(()=>newQueue(Config.ParserQueueName),false);privatestaticreadonlyLazyg_Distributor