我在Windows 10(UWP)应用程序中使用MvvmCross和AsyncEx库.
在ViewModel中,我有一个INotifyTaskCompletion属性(1),它连接到ViewModel中的Async方法(2)
在(2)中,我调用了一个Async库方法:
缓存代码不能异步,因此库方法包含阻塞代码和异步代码.
问:防止阻止UI线程的最佳方法是什么?
我从Stephen Cleary了解到,不要阻止异步代码,也不要在库方法中使用Task.Run.所以我必须......
将缓存调用移动到(2)例如
有没有更好的办法?
我正在构建 Windows 10 应用程序 (UWP) 并使用 Serilog 实现日志记录。
\n\n下面显示的是一个 appsettings.json 文件,我用它配置 Serilog 以写入滚动文件接收器(以及其他接收器)。
\n\n{\n "Serilog": {\n "Using": [ "Serilog.Sinks.Console" ],\n "MinimumLevel": "Debug",\n "WriteTo": [\n { "Name": "Console" },\n {\n "Name": "RollingFile",\n "Args": {\n "pathFormat": "#{LogFilePath}log-{Date}.txt",\n "fileSizeLimitBytes": "3000",\n "retainedFileCountLimit": "2"\n }\n } \n ],\n "Enrich": [ "FromLogContext", "WithMachineName", "WithThreadId" ],\n "Properties": {\n "Application": "Sample"\n }\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n\n然后我调用以下代码:
\n\n var configuration = new ConfigurationBuilder() \n .AddJsonFile(sampleFile.Path)\n .Build();\n\n Log.Logger = new LoggerConfiguration()\n .ReadFrom.Configuration(configuration)\n .CreateLogger();\nRun Code Online (Sandbox Code Playgroud)\n\n但是,我需要能够在运行时更改 pathFormat 属性,以便将日志写入 application\xe2\x80\x99s \xe2\x80\x9cLocalState\xe2\x80\x9d …