我正在尝试使用Task.WaitAll
任务列表.事情是任务是异步lambda,Tasks.WaitAll
因为它永远不会等待.
这是一个示例代码块:
List<Task> tasks = new List<Task>();
tasks.Add(Task.Factory.StartNew(async () =>
{
using (dbContext = new DatabaseContext())
{
var records = await dbContext.Where(r => r.Id = 100).ToListAsync();
//do long cpu process here...
}
}
Task.WaitAll(tasks);
//do more stuff here
Run Code Online (Sandbox Code Playgroud)
这不会因为异步lambda而等待.那我该如何等待我的lambda中的I/O操作呢?
我看起来很远但我似乎无法找到答案.我已经创建了一个指令,它工作正常,但我想动态地将它绑定到组件的主机.
例:
@Directive({ selector: 'myDirective' })
@Component({ selector: 'myComponent',
template: 'some content goes here...'
})
export class MyComponent {
/* bind myDirective to host */
}
//when using myComponent, it should be
<myComponent></myComponent>
//not
<myComponent myDirective></myComponent>
Run Code Online (Sandbox Code Playgroud)
我基本上想要删除a)显式设置myDirective
和b)用一个元素包装模板的需要myDirective
我一直在优化我们的Azure Sql数据库,并开始获得非常好的性能.现在主要关注的是它所做的记录.在运行插入/更新负载测试时,一切都很低,除了CPU达到峰值15%左右,日志记录达到峰值25%左右.由于日志记录IO达到25%,这导致DTU为25%.我在数据库的设置中关闭了审核,但没有做任何事情.有没有办法减少正在进行的日志记录?我甚至不确定日志的保存位置.
任何有关这方面的见解都会有所帮助,因为我用Google搜索并找不到任何值得一提的有关正在发生的日志记录的内容.
以下是指标的屏幕截图...
工作流程明细:
我没有字节大小,因为我不在办公室.每个Task
都是使用Entity Framework的SELECT
一个INSERT
或者UPDATE
一个典型的添加或更新流程.这些任务以每秒63个任务的速率启动并完成,以创建这些指标.
我开发了一个 MVC5 应用程序。数据库上下文派生自IdentityDbContext
. 当我创建数据库上下文的实例并调用基类时,它IdentityDbContext
正在调用一个Database.Exists()
方法。
无论如何我可以阻止它,因为当用户点击登录页面时,它需要一个UserManager
需要 a 的DbContext
,因此它查询数据库以查看数据库是否存在。
在任何情况下,在每个页面上,我的控制器构造函数都会设置它,UserManager
以便始终发送此查询。
谢谢。
有时,在使用Visual Studio Code进行代码更改之前,我忘记更改分支。我尝试在进行更改后更改分支,但收到类似“ Git:对以下文件的本地更改将被签出覆盖”的响应。如何将更改提交到需要使用的分支?