小编KAI*_*KAI的帖子

如何更改默认的dnx版本是Visual Studio Code?

我不确定它是否可行,但我想在dnx时更改dnx版本.从Visual Studio代码运行.

即使我目前的dnx版本是1.0.0-beta5-11682 coreclr Visual Studio Code运行1.0.0-beta4 mono

是否可以更改Visual Studio Code的默认dnx版本?

一些设置

mono .net-core coreclr visual-studio-code

13
推荐指数
2
解决办法
8091
查看次数

在 ToString() 方法中使用 lock() 进行集合

我遇到过这样的情况,当我的重写ToString()方法将使用实例的集合之一时。

public override string ToString()
{
    string returnStr = "testString";

    lock (_sync)
    {
        returnStr = $"{returnStr}: {string.Join(",", _testList)}";  // where _testList is a List<string> in the class's scope
    }

    return returnStr;
}
Run Code Online (Sandbox Code Playgroud)

由于我们谈论的是多线程应用程序,我想知道,因为我必须lock()ToString()方法的主体内部使用,以避免在生成返回字符串时修改集合。当我对集合进行修改时_sync,当然会锁定同一个对象 ( )。
但是,这个方法也被其他几个进程使用,比如 Visual Studio 的调试器,谁知道还有什么,因为这个方法是从Object类本身继承的。
例如:我担心它可能会在幕后更频繁地被调用(由框架或其他任何东西),并且必须使用锁定(这可能导致性能损失),或者它可能会在我调试时导致死锁在糟糕的时刻。

问题:
我是否应该关心这种情况,因为它可能会导致问题,还是可以在内部ToString()(以及从 .net 类型继承的其他方法中)使用对象锁定?

是否有更好的替代解决方案来实现同样的目标?

注意:我正在考虑在每次修改时从集合中生成所需的字符串(在锁内,在那里被操作),所以我准备好在ToString()方法本身中连接集合的字符串格式。我想这对性能会更好,因为 的过程string.Join()不必在每次调用时都运行ToString(),但我真的很想知道更多关于这种情况的信息。

谢谢!

.net c# multithreading

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

什么是Android中的(视图)?

谁能解释为什么我们要使用(View view),以及在定义方法时在Android中的含义。

public void dosomething(View view) {}
Run Code Online (Sandbox Code Playgroud)

提前致谢。我是一个初学者,所以我的问题似乎很基本。

android view

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