小编zil*_*n01的帖子

C#5.0的异步等待功能与TPL有何不同?

我没有看到C#(和VB)的新异步功能和.NET 4.0的任务并行库之间存在差异.举个例子来说,埃里克利珀的代码从这里:

async void ArchiveDocuments(List<Url> urls) {
    Task archive = null;
    for(int i = 0; i < urls.Count; ++i) {
        var document = await FetchAsync(urls[i]);
        if (archive != null)
            await archive;
        archive = ArchiveAsync(document);
    }
}
Run Code Online (Sandbox Code Playgroud)

似乎该await关键字有两个不同的用途.第一个出现(FetchAsync)似乎意味着,"如果稍后在方法中使用此值并且其任务未完成,请等到它完成后再继续." 第二个实例(archive)似乎意味着,"如果此任务尚未完成,请立即等待直到完成." 如果我错了,请纠正我.

难道不能像这样容易写吗?

void ArchiveDocuments(List<Url> urls) {
    for(int i = 0; i < urls.Count; ++i) {
        var document = FetchAsync(urls[i]);       // removed await
        if (archive != null) …
Run Code Online (Sandbox Code Playgroud)

c# task-parallel-library async-await c#-5.0

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

MS C++ 2010和mspdb100.dll

微软的C++编译器和链接器似乎与它有着奇怪的关系mspdb100.dll.当然,从IDE运行时,编译器和链接器工作正常.从命令行运行任何一个时,我收到一个错误.

没问题,我找到了DLL并将其复制到目录中.现在编译器工作正常,但链接器死了.

我可以通过在我的PATH中添加"%VS10%\ Common7\IDE"来解决问题,但由于各种原因(性能,系统纯度,强迫症等),我不想这样做.为什么这个设置如此敏感,我还能做些什么来解决它?

dll dependencies visual-studio-2010 visual-studio visual-c++

60
推荐指数
3
解决办法
7万
查看次数

递归vs循环

我面临一个问题,即递归和使用循环似乎都是自然的解决方案.对于像这样的案件,是否有惯例或"首选方法"?(显然它不像下面那么简单)

递归

Item Search(string desired, Scope scope) {
    foreach(Item item in scope.items)
        if(item.name == desired)
            return item;

    return scope.Parent ? Search(desired, scope.Parent) : null;
}
Run Code Online (Sandbox Code Playgroud)

Item Search(string desired, Scope scope) {
    for(Scope cur = scope; cur != null; cur = cur.Parent)
        foreach(Item item in cur.items)
            if(item.name == desired)
                return item;

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

recursion loops

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

如何在.htaccess中附加到PHP的include_path的路径

目前在我的网站上我使用的语句如下:

include 'head.php';
include '../head.php';
include '../../head.php';
Run Code Online (Sandbox Code Playgroud)

取决于我有多少嵌套文件夹.我确信有更好的方法可以做到这一点.

我确信这.htaccess是解决方案,但我不确定如何实施它.如果我插入:

php_value include_path "public/html/root"
Run Code Online (Sandbox Code Playgroud)

......我失去了其余的路径(/usr/lib/php等等).我天真地尝试过:

php_value include_path $include_path . "(path)"
Run Code Online (Sandbox Code Playgroud)

但当然这没用.我怎么能在这个列表中添加或附加单个路径.htaccess

php .htaccess include-path

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

为什么Apache的RewriteRule会显示本地路径?

我试图在.htaccess相对路径中使用RewriteRules ,但是当我尝试输出相对路径时,Apache似乎想要输出物理路径而不是服务器路径.绝对和服务器根路径工作正常.例如:

RewriteEngine On

# this works fine, 127.0.0.1/ab redirects to 127.0.0.1/cd
RewriteRule ^ab$ /cd [R]

# this doesn't work... 127.0.0.1/wx redirects to 127.0.0.1/C:/path/to/files/yz
RewriteRule ^wx$ yz [R]
Run Code Online (Sandbox Code Playgroud)

添加" RewriteBase /"可以解决问题,但是将路径添加到每个路径都很繁琐.htaccess,这使得更改目录结构变得更加困难.有没有理由RewriteBase默认使用当前的物理路径而不是当前的URI路径?

apache .htaccess mod-rewrite

15
推荐指数
2
解决办法
5255
查看次数

Windows头文件中的"#ifdef _MAC"是什么?

我正在浏览Windows的Platform SDK头文件(生活,对吧?),我注意到很多地方都包含对预处理器符号的引用_MAC.例如:

// WinUser.h line 1568
/*
 * Message structure
 */
typedef struct tagMSG {
    HWND        hwnd;
    UINT        message;
    WPARAM      wParam;
    LPARAM      lParam;
    DWORD       time;
    POINT       pt;
#ifdef _MAC
    DWORD       lPrivate;
#endif
} MSG, *PMSG, NEAR *NPMSG, FAR *LPMSG;
Run Code Online (Sandbox Code Playgroud)

这是否意味着"Macintosh"?是否有时间可以为Macintosh编译Windows或Windows的子集?

winapi platform-sdk

15
推荐指数
3
解决办法
2585
查看次数

如果我们有代理对,为什么选择UTF-32而不是UTF-16?

如果我理解正确,UTF-32可以处理宇宙中的每个角色.因此可以通过使用代理对UTF-16.那么使用UTF-32而不是UTF-16有什么好的理由吗?

unicode surrogate-pairs

14
推荐指数
3
解决办法
3896
查看次数

布尔值为true - 正1还是负1?

我正在设计一种语言,并试图决定是否true应该是0x01或0xFF.显然,所有非零值都将转换为true,但我正在尝试确定精确的内部表示.

每种选择的优缺点是什么?

boolean language-design internal-representation

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

如何透明地重定向Python导入?

我正在寻找一种方法来模拟Python导入的符号链接.我希望能够在不复制文件的情况下就地解压缩以下文件夹结构:

root
?? python_lib
?  ?? my_utils
?     ?? __init__.py
?     ?? etc.py
?? app1
?? app2
?? app3
   ?? lib
   ?  ?? __init__.py
   ?  ?? my_utils.py
   ?? run.py
Run Code Online (Sandbox Code Playgroud)

app3/run.py 包含这个:

from lib.my_utils import etc

etc.pancakes()
Run Code Online (Sandbox Code Playgroud)

我想要使​​用etc位于的代码python_lib/my_utils/.有什么我可以放入,app3/lib/my_utils.py以便Python> = 3.1将透明地导入python_lib/my_utils/文件夹(使用相对路径和..),子包也将工作?

python python-import

8
推荐指数
2
解决办法
3402
查看次数

关于非可空类型的辩论

我一直听到人们谈论非可空引用类型将如何解决如此多的错误并使编程变得更加容易.即使是null的创建者也称它为十亿美元的错误,而Spec#引入了非可空类型来解决这个问题.

编辑:忽略我对Spec#的评论.我误解了它是如何工作的.

编辑2:我必须和错误的人交谈,我真的希望有人能够与之争辩:-)


所以我猜想,在少数人中,我错了,但我不明白为什么这场辩论有任何优点.我认为null是一个bug查找工具.考虑以下:

class Class { ... }

void main() {
    Class c = nullptr;
    // ... ... ... code ...
    for(int i = 0; i < c.count; ++i) { ... }
}
Run Code Online (Sandbox Code Playgroud)

BAM!访问冲突.有人忘了初始化c.


现在考虑一下:

class Class { ... }

void main() {
    Class c = new Class(); // set to new Class() by default
    // ... ... ... code ...
    for(int i = 0; i < c.count; ++i) { ... …
Run Code Online (Sandbox Code Playgroud)

null d non-nullable null-pointer access-violation

7
推荐指数
3
解决办法
1692
查看次数