小编Kav*_*han的帖子

检测用户是否在Windows通用应用程序上闲置

我正在为Windows 10通用应用程序开发一个类库(仅限移动和桌面设备系列).如果用户空闲(没有触摸,鼠标移动,按键等)x秒,我需要调用一个事件.这个方法可以用来解决android上的这个问题.但我无法在Windows UWP上找到解决方案.

UWP中是否有API可用于实现此目的?

idle-processing windows-store-apps win-universal-app windows-10

5
推荐指数
1
解决办法
1694
查看次数

为什么 Xamarin Android 无法发送 GRPC/Http2 请求?

我正在尝试运行Dot net conf 2019 keynote中的 xamarin 表单示例。我已经托管了 grpc 服务,.net core 控制台应用程序可以毫无问题地从中获取数据。但是,当运行 xamarin 应用程序时,ALPN 协商(客户端问候)发生在 http 1.1 上,因此 grpc 调用失败。 源代码可在此处获取

错误消息:Grpc.Core.RpcException:状态(StatusCode=Internal,Detail=“gRPC 响应错误。响应协议降级为 HTTP/1.1。”

调试器显示 xamarin 上使用的 SocketsHttpHandler 没有支持 Http 2 的代码。

问题:

  1. 显然 Xamarin 支持 Grpc 和 Http。为什么会失败?鉴于我的怀疑是正确的,所以问题是因为 xamarin 使用旧版本的 System.Net.Http.dll 不支持 Http2。
  2. 如何确保 Xamarin 使用支持 Http2 的正确运行时程序集?
  3. 如果这对某人有用,您能分享一下系统配置吗?

配置

使用共享运行时:true
Mono 共享运行时版本(如在 Android 设备上看到的):10.1.0-18。
Windows 10 上的 Visual studio 2019:
Xamarin.Android SDK 10.1.4.0 (d16-4/e44d1ae)
Xamarin.Android 参考程序集和 MSBuild 支持。
单声道:fd9f379
Java.Interop:xamarin/java.interop/d16-4@c4e569f
Xamarin.Android工具:xamarin/xamarin-android-tools/d16-5@9f4ed4b

我尝试过的事情:

  1. 从 ModernHttpClient 切换到托管 HttpClient 实现 /NativeMessageHandler。仍然失败并出现同样的错误。(因为ALPN协商仍然使用相同的代码?) …

android xamarin http2 grpc

3
推荐指数
1
解决办法
3170
查看次数

定义类的属性

谁能告诉我两者之间的区别

public class Vendor
{
    public string VendorName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

public class Vendor
{
    private string vendorName = string.Empty; 

    public string VendorName
    {
        get { return vendorName; }
        set { vendorName = value; }
    }
}
Run Code Online (Sandbox Code Playgroud)

使用私有变量有什么好处吗?这样做只会浪费时间和线条吗?在课堂上没有对该属性进行任何操作.

谢谢

c# properties

1
推荐指数
1
解决办法
403
查看次数

方法不会从任务委托调用

我正在尝试使用System.Threading.Tasks.Task类实现并行处理.奇怪的是,任务委托执行在第一次方法调用时停止.我在下面编写示例代码以重新创建问题.

using System;
using System.Threading.Tasks;

namespace TestApp
{
    public static class TestClass
    {
        static TestClass()
        {
            var tasks = new Task[Environment.ProcessorCount];
            for (int i = 0; i < Environment.ProcessorCount; i++)
            {
                var task = Task.Run(() =>
                {
                    Console.WriteLine("Start the Task " + i);

                    // Method Foo is not called. 
                    // Stack trace show a managed to native transition.
                    // Why? 
                    Foo(i);
                });
                tasks[i] = task;
            }

            Task.WaitAll(tasks);
            Console.WriteLine("Press eny key to exit");
            Console.ReadKey();
        }

        private static void Foo(int …
Run Code Online (Sandbox Code Playgroud)

.net c# parallel-processing task .net-4.6.2

1
推荐指数
1
解决办法
103
查看次数