小编Dan*_*San的帖子

每次调用异步void方法时都会创建一个新线程吗?

我有以下场景:

async void DoStuff() {
    // ...
}

button1.Click += (s, p) => {
    DoStuff();
};
Run Code Online (Sandbox Code Playgroud)

我不确定当async void第一次调用仍未完成时调用方法时会发生什么.调用每次调用时都会创建一个新线程,还是调用会破坏并覆盖之前创建的线程?此外,如果前一个假设是正确的,那么本地方法变量是否会被共享?

编辑:

我误解了这个async await问题,因为在Windows 8应用程序中,它的行为有所不同.如果您认为调用异步方法与创建像我这样的新线程相同,请阅读此澄清文章.

.net c# async-await

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

“导出为名称空间foo”的目的是什么?

我正在使用某些* .d.ts文件,并且在其中许多文件中看到以下两行:

//foo.d.ts
export = foo;
export as namespace foo;

declare var foo;

[...]
Run Code Online (Sandbox Code Playgroud)

我可以理解,在前一个(export = foo)中,oof是导出的东西。但是导出为名称空间foo的含义是什么?应该如何从外部消费或使用它?

对于反应环境声明文件,它说:

export = React;
export as namespace React;

declare namespace React {
[...]
Run Code Online (Sandbox Code Playgroud)

无法使用以下命令导出React命名空间:

导出声明名称空间React {[...]

typescript

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

我可以看到给编译器构建项目的命令吗?

我想知道是否有可能看到给编译器在Visual Studio 2012中构建项目的命令.我怎样才能实现这一目标?

(我参与.Net C#项目)

.net c# visual-studio visual-studio-2012

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

如何知道给定的用户是否已经使用MSAL登录?

使用msal.js库(Microsoft身份验证库),哪种方法可以知道给定用户是否已经登录?我的意图是如果用户的凭据已经保存在浏览器的存储中,则避免显示登录弹出窗口

我目前的做法:

function isUserLoggedIn(username) {
 const agent = msal.UserAgentApplication(...);
 const user = agent.getUser();
 return user != null && user.displayableId === username);
}
Run Code Online (Sandbox Code Playgroud)

但是我不确定是否必须检查用户凭据是否已过期/过期。哪个是正确的方法?

azure-ad-msal msal.js

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

如何强制函数返回给定类型的值?

也许有一个 tsconfig 选项可以设置这个,但是如果我写类似的东西

function codeToMsg(a: number): string {
    if (a == 200)
        return "OK";
}

let msg = codeToMsg(123456);
Run Code Online (Sandbox Code Playgroud)

我没有从编译器收到错误,指出该函数可能不会返回字符串类型的值(它现在返回未定义)。如何执行?

typescript

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