草庐IT

ACTION_NOTIFICATION_CHANNEL_BLOCK

全部标签

c# - 在 MVC 5 中的 Action Filters 中调用异步方法

我正在编写一个使用ActionFilterAttribute的Action过滤器(继承自HttpClient)将数据发布到OnResultExecuted中的外部服务器方法。HttpClient有方法PostAsync它返回一个可等待的Task.publicoverridevoidOnResultExecuted(ResultExecutedContextfilterContext){using(varclient=newHttpClient()){vartask=client.PostAsync(GetUri(),GetContent());varresult=task.Result

c# - 将 Action<T> 存储在单个集合中供以后使用

我试图在内存中保存Action类型的引用集合其中T是变量类型我找到了dynamic的解决方案但我不想使用动态解决方案publicclassMessageSubscriptor:IMessageSubscriptorPool{Dictionary>Callbacks=newDictionary>();publicvoidSubscribe(Actioncallback)whereT:IMessage{Callbacks.Add(typeof(T),(obj)=>callback(obj));}}有谁知道处理这个问题的更好方法吗?提前致谢。 最佳答案

c# - 条件为假时执行的 If 语句 True block

我优化了一个扩展方法来比较两个流的相等性(字节对字节)——知道这是一个热门方法,我尝试尽可能地优化它(流可以达到数兆字节的长度)。我基本上想出了以下方法:[StructLayout(LayoutKind.Explicit)]structConverter{[FieldOffset(0)]publicByte[]Byte;[FieldOffset(0)]publicUInt64[]UInt64;}//////Comparestwostreamsforbyte-by-byteequality.//////Thetargetstream.///Thestreamtocomparethetar

c# - 为什么在 finally block 中不允许等待?

为什么await不允许出现在finallyblock中?publicasyncvoidFn(){try{}finally{awaitTask.Delay(4000);}}知道可以手动获取AwaiterpublicvoidFn(){try{}finally{varawaiter=Task.Delay(4000).GetAwaiter();}} 最佳答案 取自:Wherecan’tIuse“await”?Insideofacatchorfinallyblock.Youcanuse“await”insideofatryblock,rega

c# - 它有什么区别 - 使用 Task.Run 运行 'async' Action 委托(delegate)(与默认 Action 委托(delegate)相比)?

我正在努力了解async/await并认为我确实了解有关用法的一些事情。但仍然不太清楚在下面的场景中实际好处是什么。查看Task.Run用法。第一种方法使用普通委托(delegate)并使用Thread.Sleep,但第二种方法使用“异步”委托(delegate)和Task.Delay。我的问题是:这对这个方法有什么影响(或没有影响)?该方法本身是一个异步方法。该代码正在创建一个单独的线程(通过Task.Run),并且该线程除了执行该委托(delegate)之外别无他法。因此,即使它在Task.Delay上产生等待,在这种情况下有什么用,因为线程无论如何都是一个孤立的线程,不用于任何其

c# - PowerShell:将 block 作为参数传递给函数

我会用一个例子来解释我的问题。让我们在C#中编写以下代码:voidA(Actionblock){B(()=>{Console.WriteLine(2);block();});}voidB(Actionblock){Console.WriteLine(1);block();}voidMain(){A(()=>{Console.WriteLine(3);});}这段代码的输出是:123现在,我想在PowerShell中编写这段代码:functionA($block){B{2.$block}}functionB($block){1.$block}A{3}但是,这段代码会导致调用深度溢出:Th

c# - itextsharp 测量 block 宽度/高度

我正在尝试与iTextSharp进行一些精确对齐,但我总是做不到,因为我想不出一种方法来获取block或段落的宽度/高度值。如果我创建一个具有特定字体、大小和文本的段落,那么它的尺寸应该是已知的,对吗?我知道默认的左/右/居中对齐方式对我来说最有用,但在某些情况下,知道尺寸最有用。有什么想法吗? 最佳答案 您可以使用GetWidthPoint()获取block的宽度,block的高度通常是字体的大小,除非您只使用小写字母。如果是这样,那么您可以使用BaseFont.GetCharBBox()手动测量字符。但是,段落是可流动的项目,它

c# - SSL 网络服务 : Could not create SSL/TLS secure channel

我的C#.net应用程序正在使用HTTPS网络服务。由于证书现在即将过期,我正在尝试用我得到的新证书更新它(一个.jks文件,我使用javasdks的keytool将其转换为.p12)。我认为这很容易,因为我知道该怎么做,但它就是不合作。到目前为止我做了什么:将证书导入到CURRENT_USER\Personal导入证书到LOCAL_MACHINE\Personal给定正确的用户(apppoolidentity)通过winhttpcertcfg工具访问证书的私钥。以下是权限列表用于证书。使用findprivatekey工具,我还找到了实际的key文件,并授予apppoolidentit

c# - 以编程方式在文本之间制作带有超链接的文本 block

在XAML中,我有以下代码:clickhereplease现在我想摆脱整个TextBlockXAML并以编程方式添加该位。我可以毫不费力地创建TextBlock,将Text属性设置为“请单击”并将超链接添加到TextBlock.Content。但是如何将超链接定位在“点击”和“请”之间?以及如何将超链接的文本设置为“此处”?我没有太多进展,到目前为止我得到的是:label2.Content=newTextBlock(){Text="clickplease"};//(label2.ContentasTextBlock).Contentdoesnotexist?//andevenifitd

c# - 单个 WCF channel 性能与多个 channel

我有一个应用程序一遍又一遍地重用同一个WCFchannel。我通过工厂对象保留静态引用。我想知道这是一个好的做法还是我应该打开x个channel并通过这些channel轮询所有服务调用而不是使用单个channel?如果仅使用1个channel,这些服务调用是否会排队?或者当我使用x个channel时是否会发生同样的情况? 最佳答案 您应该为所有请求使用一个channel工厂,但应该为每个请求构造不同的channel。永远不要重复使用channel。它们的创建成本并不高,而且不是线程安全的。创建成本高昂的是channel工厂。它是线程