小编nav*_*een的帖子

无法在匹配内调用远程函数:Foreach循环

我试图在for-each循环中设置User模型的一些属性,但是我一直在跟踪错误

无法调用远程函数x.token/0匹配 (elixir)src/elixir_fn.erl:9:匿名fn/3 in:elixir_fn.translate/3(stdlib)lists.erl:1353 :: lists.mapfoldl/3(elixir) )src/elixir_fn.erl:14 :: elixir_fn.translate/3

方法:

Enum.each(users, fn(user) ->
  user.token = Comeonin.Bcrypt.hashpwsalt(to_string(user.id))
end)
Run Code Online (Sandbox Code Playgroud)

elixir ecto

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

为什么不允许实例类型的结构中的循环引用,但允许循环引用静态类型?

为什么我们可以在struct中使用静态循环引用而不是实例类型循环引用?

struct C
{
    //following line is not allowed. Compile time error.
    // it's a non static circular reference.
    public C c1;
    //But this line compiles fine.
    //static circular reference.
    public static C c2;
}
Run Code Online (Sandbox Code Playgroud)

c#

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

为什么CLR需要专用线程来调用finalize方法?

这是msdn文章的摘录.文章可以在这里找到

有一个特殊的运行时线程专用于调用Finalize方法.当可释放队列为空(通常是这种情况)时,该线程会休眠.但是当条目出现时,此线程会唤醒,从队列中删除每个条目,并调用每个对象的Finalize方法.因此,您不应该在Finalize方法中执行任何代码,该方法对正在执行代码的线程做出任何假设.例如,避免在Finalize方法中访问线程本地存储.

这是我之前提出过的一个问题,我对于同样的说法没有投票,即Finalizable对象没有专用线程,而且我的信息源是错误的.如果本文解释的是真的,我想知道为什么CLR需要一个特殊的线程来调用Finalize方法?

c# garbage-collection

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

模板方法设计模式是控制反转的一个例子吗?

最近在一次采访中,我正在解释我所研究的框架.我说我们通过使用模板方法设计模式提供可扩展性来创建控制反转.我说这是一个控制反转的例子,我们的框架调用框架用户实现的方法,面试官说模板方法设计模式不是IOC的一个例子.我想知道我对IOC的理解是否不正确?

design-patterns inversion-of-control

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

什么是在并行处理中伪造长时间运行流程的最佳方法?

我想知道当多个任务并行运行时,伪造长时间运行任务的最佳方法是什么.首先想到的是Thread.Sleep

public void FakeLongRunningTask()
{
Thread.Sleep(5000);
}
Run Code Online (Sandbox Code Playgroud)

但是上面代码的问题是调用Thread.Sleep会阻塞这个线程,这意味着它会放弃它的处理器时间片,所以在并行环境中调用Thread.Sleep的方法就好根本不调用它.因此,如果我并行运行三个任务,其中一个是调用Thread.Sleep,那么此任务对性能没有影响(尽管它可能会强制CLR生成更多线程!!!).但我想要的是伪造一个会影响整体表现的任务.

c# task-parallel-library

3
推荐指数
2
解决办法
3722
查看次数

在Phoenix app:Genserver中提取微服务

我正在阅读这篇文章,关于如何从现有的凤凰应用程序中提取微服务.作者重构了一个凤凰app控制器并将其中一个方法移动到Genserver,之后他将Genserver移动到一个单独的应用程序并在主项目中添加了一个依赖项.

但是我在这里有点困惑,因为GenServer只允许你有两个服务器回调(即句柄调用和句柄转换).但是,如果我想要一个功能作为微服务移出,我们最终会创建与该服务中涉及的端点一样多的Genserver,因为单个genserver将允许一个/两个方法调用.genserver是提取服务的理想方法吗?

elixir phoenix-framework

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

线程同步:线程拥有自己的字符串类型锁副本

最近我遇到的代码如下:

void CallThisInDifferentThreads(Return return)
{
 var lock =  "lock";
 lock(lock)
    {
        //Do something here.
    }
}
Run Code Online (Sandbox Code Playgroud)

我的第一反应是这段代码中的锁不起作用,因为我们正在创建锁并在同一方法中使用它.调用此方法的每个线程都有自己的锁副本,因此不会有同步.

但后来我意识到这应该有效,因为字符串转到字符串池,并且只有一个特定字符串的实例.我不确定我是否正确.

c# multithreading

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