小编use*_*177的帖子

正好杀死在Linux上运行的.NET Core守护程序

我创建了一个在Ubuntu 14.04计算机上作为守护进程运行的.NET Core控制台应用程序.

我想在不强制服务的情况下停止服务,能够处理kill事件.

我怎样才能做到这一点?

c# linux service daemon .net-core

32
推荐指数
2
解决办法
2万
查看次数

Readonly struct vs classes

假设您只有不可变类型,并且您的所有代码都是最新的C#7.3,并且您的方法正在使用in关键字进行输入

为什么你会使用类而不是readonly结构?

使用结构的缺点是复制是昂贵的,但假设您阻止任何副本(防御性编译器副本或由代码表示),readonly结构允许您只复制引用(如类所做)并避免堆分配和对垃圾的压力集电极.

排除特殊情况(我猜它可能是一个非常大的对象,不适合堆栈)你会使用readonly struct作为首选吗?

我感兴趣的案例是它们被用作数据容器的地方.

.net c#

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

在调试器中查看C#generic的类型

当我使用调试器将鼠标悬停在Visual Studio中的泛型类型上时,我没有获得当前类型,有没有办法显示它而无需进入即时窗口并键入?typeof(T).Name

c# visual-studio

17
推荐指数
3
解决办法
3773
查看次数

类的in修饰符有什么意义

C#7.2引入了in参数的修饰符,这对于结构特别是对于只读结构非常有意义.

它也可以用于参考类型

void Method(in StringBuilder value) { }
Run Code Online (Sandbox Code Playgroud)

默认情况下,引用类型是通过引用传递的,in上面的示例中只是一个冗余修饰符吗?

value = null你使用时是禁止的in,这是否意味着它只是通过将原始引用传递给堆位置并阻止更改来保留引用地址的副本?

c# c#-7.2

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

在损坏的SSL网站上保存Chrome中的密码

当网站没有有效的SSL证书时,Chrome不允许保存密码.

是否有解决方法或标志来启用此功能?

google-chrome credential-manager

7
推荐指数
0
解决办法
602
查看次数

跳过调试器中的当前行

有没有办法使用键盘快捷键跳过 Visual Studio 调试器中的当前行?

我能够做到的唯一方法是使用左侧的黄色光标或“设置下一个语句”,这在函数的末尾不起作用。

visual-studio

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

为什么在ConfigureAwait之后保留文化(false)

我有以下异步代码:

// Main system culture is English here
Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("es");

WriteLine($"{Thread.CurrentThread.ManagedThreadId}:Culture:{Thread.CurrentThread.CurrentCulture}");

await Task.Delay(1).ConfigureAwait(false);

WriteLine($"{Thread.CurrentThread.ManagedThreadId}:Culture:{Thread.CurrentThread.CurrentCulture}");
Run Code Online (Sandbox Code Playgroud)

我期望的结果是在等待之后具有不同的线程id并且新的线程id再次具有未修改的系统文化.

这没有发生; 线程确实与前一个不同,但文化以某种方式从前一个线程流出.

为什么保持文化,如果我提出ConfigureAwait我不需要保留SynchronisationContext?我的理解是,文化没有存储在其中,ExecutionContext因此我不确定为什么会发生这种情况.

这是一个控制台应用程序.

完整的示例代码:https://pastebin.com/raw/rE6vZ9Jm

.net c# asynchronous task-parallel-library async-await

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

如何在通用约束类型上调用静态方法

给出这个例子:

type Base() =
    static member Function() = ""

type Derived() =
    inherit Base()

let get<'T when 'T :> Base> segment =
    return ('T).Function()

let invoked = get<Derived>()
Run Code Online (Sandbox Code Playgroud)

有没有办法来调用Functionget

f#

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

等待CancellationToken取消请求

如何在请求取消之前暂停执行?

var cts = new CancellationTokenSource();

Task.Run(() =>
{
    // Wait for the Cancel...

    Console.WriteLine("Canceled!");
});

Console.ReadKey();

cts.Cancel();

Console.ReadKey();
Run Code Online (Sandbox Code Playgroud)

c# task-parallel-library

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

LINQ IEnumerable <T []>到IEnumerable <T>

如果查询返回IEnumerable,我怎么能让它变平并且在一个IEnumerable中拥有数组中的所有T?

var types = from genericType in subscriber.GetType().GetInterfaces()
            where genericType.IsGenericType 
            && genericType.GetGenericTypeDefinition() == typeof (ISubscriber<>)
            select genericType.GetGenericArguments();
Run Code Online (Sandbox Code Playgroud)

c# linq

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