草庐IT

thread_func

全部标签

c# - Func 委托(delegate)与函数

谁能告诉我使用委托(delegate)而不是调用函数本身的优势,如下所示(或者换句话说,为什么选择选项A而不是选项B)?昨晚我在看某人的linq代码,他们有类似于选项A的东西,但它被用来返回编译的linq查询。我意识到前者现在可以传递给其他功能..只是不确定它的实用性。顺便说一句,我意识到这不会按原样编译。在发布之前取消注释其中一个函数。蒂亚classProgram{staticvoidMain(string[]args){Console.WriteLine(SayTwoWords("Hello","World"));Console.ReadKey();}//OptionAprivat

c# - 从 Expression<Func<T, object>> 实例获取实际返回类型

我有一个接受Expression>的方法实例。我想获取特定表达式实例返回的实际数据类型,而不是object.我可以让它为直接属性引用工作,所以如果我传入表达式x=>x.IntegerProperty我可以获得整数的类型引用。此方法需要将其转换为MemberExpression。但是,我无法让它适用于任意表达式。例如,如果表达式是x=>x.IntegerProperty.ToString()我想获取字符串的类型引用。我无法将其编译为MemberExpression,如果我只是.Compile()它并检查我得到“对象”的返回类型。如何查看具体的表达式实例并推导出实际的返回类型?

C# 显示错误 'Delegate ' System.Func<...>' does not take 1 arguments

我打电话:form=newFormFor().Set(x=>x.Name,"hi");其中Project有一个名为Name的字段,FormFor的代码是:publicclassFormForwhereTEntity:class{FormCollectionform;publicFormFor(){form=newFormCollection();}publicFormForSet(Expression>property,stringvalue){form.Add(property.PropertyName(),value);returnthis;}}但它一直告诉我Delegate'Sy

c# - System.Threading.Tasks 中的 NullReferenceException 调用 HttpClient.GetAsync(url)

我的MVC4.0应用程序有一个奇怪的问题。我使用REST网络服务(AmazonAssociate)。我创建了一种方法,可以在任何地方使用。缩短版是这样的:privateasyncTaskGetRequest(stringurl){stringmyresponse;HttpResponseMessageresponse=null;HttpClientclient=newHttpClient();try{response=awaitclient.GetAsync(url);myresponse=response.Content.ToString();if(myresponse.Contai

c# - Expression<Func<T,bool>> 声明是什么意思?

有人可以用表达表达式的含义以及如何调用它的方式来解释以下声明吗?voidDelete(Expression>expression)whereT:class,new();我是这样读的:删除T类型的对象,通过传入一个参数为T类型对象的lambda表达式返回bool.还有,你能不能换Funcexpression和Predicateexpression 最佳答案 此方法可能是集合类型的成员,是吗?“谓词”是对“这个东西是那个集合的成员吗?”这个问题说"is"或“否”的任何设备。因此,集合“整数偶数正整数”的谓词将是x=>x>0&&x%2==

c# - 并发集合在没有 Thread.Sleep 的情况下吃太多 cpu

BlockingCollection或ConcurrentQueue的正确用法是什么,这样您就可以自由地使项目出队,而不会使用线程消耗一半或更多的CPU?我正在使用2个线程运行一些测试,除非我有至少50~100毫秒的Thread.Sleep,否则它总是会占用至少50%的CPU。这是一个虚构的例子:privatevoid_DequeueItem(){objecto=null;while(socket.Connected){while(!listOfQueueItems.IsEmpty){if(listOfQueueItems.TryDequeue(outo)){//usethedata}

c# - 未经授权的访问异常 : Invalid cross-thread access in Silverlight application (XAML/C#)

C#相对较新,想尝试使用它来使用一些第三方Web服务API。这是XAML代码这是C#代码privatevoidButton_Click(objectsender,RoutedEventArgse){HttpWebRequestrequest=(HttpWebRequest)WebRequest.Create("http://api.twitter.com/1/users/show/keykoo.xml");request.Method="GET";request.BeginGetResponse(newAsyncCallback(twitterCallback),request);}p

c# - Task.Run 和 Func<>

如何运行一个返回值并接受参数的任务?我看到有一个重载方法Task.Run(Func)但是我怎样才能在那里传递参数呢? 最佳答案 Func不带参数。通常,您会使用lambda表达式捕获参数。例如:publicvoidDoSomething(stringtext){Tasktask=Task.Run(()=>text.Length);...}在这里text是一个捕获的变量...所以即使你只是创建一个Func,它使用方法参数。 关于c#-Task.Run和Func,我们在StackOverfl

c# - 将锁与 Threading.Timer 一起使用

我有一个Windows服务应用程序,它使用Threading.Timer和TimerCallback在特定时间间隔进行一些处理。我需要一次将此处理代码锁定到1个线程。因此,例如,启动服务并触发第一个回调,然后启动一个线程并开始处理。只要处理在下一次回调之前完成,这就可以正常工作。例如,处理时间比平时稍长,并且在另一个线程正在处理时再次触发TimerCallback,我需要让该线程等待另一个线程完成。这是我的代码示例:staticTimertimer;staticobjectlocker=newobject();publicvoidStart(){varcallback=newTimer

c# - Thread.Sleep(timeout) 和 ManualResetEvent.Wait(timeout) 有什么区别?

Thread.Sleep(timeout)和resetEvent.Wait(timeout)都会导致执行暂停至少timeout毫秒,那么它们之间有区别吗?我知道Thread.Sleep导致线程放弃其时间片的剩余部分,因此可能导致sleep持续时间比请求的时间长得多。ManualResetEvent对象的Wait(timeout)方法是否有同样的问题?编辑:我知道ManualResetEvent的要点是从另一个线程发出信号-现在我只关心事件的Wait方法指定超时的情况,并且没有其他来电者设置事件。我想知道按时唤醒是否比Thread.Sleep更可靠 最佳答案