小编rob*_*rob的帖子

为并发编程方法推荐一个很好的资源?

我已经阅读了并发的各种零碎内容,但希望找到一个能够详细说明并比较各种方法的资源.理想情况下,接受线程,协同程序,消息传递,演员,期货......以及其他任何我可能还不知道的新内容!

更喜欢一个编程人员指导而不是公开理论/数学.

谢谢.

concurrency

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

在C#中将方法转换为异步的正确方法?

我试图将以下方法(简化示例)转换为异步,因为cacheMissResolver调用在时间方面可能很昂贵(数据库查找,网络调用):

// Synchronous version
public class ThingCache
{
    private static readonly object _lockObj;
    // ... other stuff

    public Thing Get(string key, Func<Thing> cacheMissResolver)
    {
        if (cache.Contains(key))
            return cache[key];

        Thing item;

        lock(_lockObj)
        {
            if (cache.Contains(key))
                return cache[key];

            item = cacheMissResolver();    
            cache.Add(key, item);
        }

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

关于消费异步方法有很多关于在线的材料,但我在生产它们时发现的建议似乎不那么明确.鉴于这是打算成为图书馆的一部分,我的尝试是否正确?

// Asynchronous attempts
public class ThingCache
{
    private static readonly SemaphoreSlim _lockObj = new SemaphoreSlim(1);
    // ... other stuff

    // attempt #1
    public async Task<Thing> Get(string key, Func<Thing> cacheMissResolver)
    {
        if …
Run Code Online (Sandbox Code Playgroud)

c# asynchronous async-await

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

如何识别域模型中的聚合根?

考虑到域驱动设计,我遇到了如何在我的域模型中识别聚合根的情况.

我有以下三个类,为一个简单的待办事项列表建模:

public class List {
    private IList<Task> _tasks;

    public List() { ... }
    public string Name { get;  set; } }
    public IEnumerable<Task> Tasks() { ... }
    public void AddTask(string descr) { ... }
    public void RemoveTask(Task t) { ... }
    public Task GetRandomTask() { ... }
}

public class Task {
    private IList<Update> _updates;

    public Task(string descr) { ... }

    public string Description { get; }
    public bool IsClosed { get; }
    public IEnumerable<Update> Updates() { ... } …
Run Code Online (Sandbox Code Playgroud)

c# domain-driven-design aggregateroot

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

TYPO3 - 如何在生成的html页面的标题中设置<base>标签?

我继承了在TYPO3版本4.2.1上运行的网站的所有权.有两个页面无法正确呈现,这似乎是由于无法加载css和javascript文件.检查页面源,我可以看到<base href="blah..." />页面标题中缺少标记.

问题:如何在地球上设置TYPO3中的基本网址属性!?

我已经倾倒了Typo3网站,编辑了各种"typoscript"文件,向PHP神提供了圣礼,但都无济于事.生成的代码仍然不包含标记.

任何帮助赞赏.请注意,我无法"升级到最新版本",而且我的PHP知识不存在.

typo3 content-management-system

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

PostgreSQL-错误:SQL状态:XX000

我在Postgres中有一张桌子,看起来像这样:

CREATE TABLE "Population"
(
  "Id" bigint NOT NULL DEFAULT nextval('"population_Id_seq"'::regclass),
  "Name" character varying(255) NOT NULL,
  "Description" character varying(1024),
  "IsVisible" boolean NOT NULL
  CONSTRAINT "pk_Population" PRIMARY KEY ("Id")
)
WITH (
  OIDS=FALSE
);
Run Code Online (Sandbox Code Playgroud)

选择函数如下所示:

CREATE OR REPLACE FUNCTION "Population_SelectAll"()
  RETURNS SETOF "Population" AS
$BODY$select
  "Id",
  "Name",
  "Description",
  "IsVisible"
from "Population";
$BODY$
  LANGUAGE 'sql' STABLE
  COST 100
Run Code Online (Sandbox Code Playgroud)

调用select函数将按预期返回表中的所有行。

我需要在表中添加几列(这两列都是数据库中其他表的外键)。这给了我一个新的表def,如下所示:

CREATE TABLE "Population"
(
  "Id" bigint NOT NULL DEFAULT nextval('"population_Id_seq"'::regclass),
  "Name" character varying(255) NOT NULL,
  "Description" character varying(1024),
  "IsVisible" boolean NOT NULL, …
Run Code Online (Sandbox Code Playgroud)

sql postgresql

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