我有一个应用程序
Process.Start()
Run Code Online (Sandbox Code Playgroud)
启动另一个应用程序'ABC'.我想等到应用程序结束(进程死机)并继续执行.我该怎么做?
应用程序"ABC"可能有多个实例同时运行.
我刚看到3个关于TPL使用的例程,它们执行相同的工作; 这是代码:
public static void Main()
{
Thread.CurrentThread.Name = "Main";
// Create a task and supply a user delegate by using a lambda expression.
Task taskA = new Task( () => Console.WriteLine("Hello from taskA."));
// Start the task.
taskA.Start();
// Output a message from the calling thread.
Console.WriteLine("Hello from thread '{0}'.",
Thread.CurrentThread.Name);
taskA.Wait();
}
public static void Main()
{
Thread.CurrentThread.Name = "Main";
// Define and run the task.
Task taskA = Task.Run( () => Console.WriteLine("Hello from taskA."));
// Output a …Run Code Online (Sandbox Code Playgroud) 我刚刚安装了Visual Studio 2017 15.3预览版,现在我注意到我一直在使用的现有解决方案下的新文件:
.vs\[SOLUTION NAME]\v15\sqlite3\storage.ide
Run Code Online (Sandbox Code Playgroud)
我想知道我是否应该将其添加到我的版本控制仓库中,或者我是否应该将其添加到忽略列表中(即,如果它是基于用户/设置的文件,如.suo文件).我一直在谷歌搜索试图找出它是什么以及它做了什么,但几乎没有关于它的任何信息.我搜索了像"visual studio sqlite3 storage.ide"这样的东西,它引导我到这个SQLitePersistentStorageService类的参考源这样的页面,所以我收集它与代码分析有关,但我找不到任何其他信息所有关于SQLitePersistentStorageService课程.
这个文件是什么,我应该保留在版本控制中吗?
我正在研究一个视图,其中我在两个来自两个不同服务器的表上使用内连接.我们正在使用链接服务器.运行查询时,我收到此消息:
无法在等于操作中解决"SQL_Latin1_General_CP1_CI_AS"和"Arabic_CI_AS"之间的排序规则冲突.
我对整理不太了解.通过互联网搜索我找到了使用的解决方案COLLATE,但这个概念COLLATE对我来说并不清楚.它会改变任何数据库的内容吗?我正在寻找一个解决方案,而无需更改数据库的任何内容.
欢迎任何有关这些概念的好学习材料.
我最近一直在创建一个有api的MVC站点,在startup.cs中有一条线说app.UseWebApi.我做了一些搜索,但我找不到一个体面的答案.有人可以帮我解释一下这个概念吗?谢谢!
在Visual Studio窗体设计器中,可以通过双击"事件"列表中的"属性"窗口添加事件处理程序.您还可以在代码视图中添加事件处理程序(至少在VB.NET中),方法是在左侧下拉列表中选择关联的"事件"项,然后在右侧下拉列表中选择所需的事件.我的问题是:一些事件只能通过后一种技术而不是前者才能获得?例如,HandleCreated事件在代码视图中可用:

但不是在设计师:

这在VB.NET中很好,因为我总是可以使用第一种技术来快速生成事件处理程序.但是,在C#中,第一种技术是不可能的,但问题仍然存在; 也就是说,"属性"窗口中的设计器列表中不存在某些事件.我知道创建事件处理程序的唯一方法是手动添加它,其中包括手动连接事件处理程序.
是否有某些技术使得某些事件在"属性"窗口中的设计器"事件"列表中缺失?鉴于这是真的,我怎么能像在VB.NET中那样在C#中快速生成事件处理程序?
我主要用C#编写代码,但是我在VB.NET中编写了多年.在VB中,我可以组合一个字符常量和一个字符串文字来创建其他常量,这非常方便:
Const FileExtensionSeparatorCharacter As Char = "."c
Const BillingFileTypeExtension As String = FileExtensionSeparatorCharacter & "BIL"
Run Code Online (Sandbox Code Playgroud)
现在我想在C#中做同样的事情:
const char FileExtensionSeparatorCharacter = '.';
const string BillingFileTypeExtension = FileExtensionSeparatorCharacter + "BIL";
Run Code Online (Sandbox Code Playgroud)
但这给了我一个编译器错误:
分配给'BillingFileTypeExtension'的表达式必须是常量
有没有理由我不能在C#中做到这一点?
我没有理解这一点,并想知道是否有人可以帮助我.
我有2个表叫做RES_DATA和INV_DATA
RES_DATA 包含我的客户,如下所示
CUSTOMER ID | NAME
1, Robert
2, John
3, Peter
Run Code Online (Sandbox Code Playgroud)
INV_DATA 包含他们的发票如下
INVOICE ID | CUSTOMER ID | AMOUNT
100, 1, £49.95
200, 1, £105.95
300, 2, £400.00
400, 3, £150.00
500, 1, £25.00
Run Code Online (Sandbox Code Playgroud)
我正在尝试写一个SELECT声明,它将给我如下结果.
CUSTOMER ID | NAME | TOTAL AMOUNT
1, Robert, £180.90
2, John, £400.00
3, Peter, £150.00
Run Code Online (Sandbox Code Playgroud)
我想我需要2个INNER JOINS以某种方式添加INVOICES表的表和SUM值BY GROUP BY Customer Table但老实说我认为我遗漏了一些东西.甚至无法接近我需要的结果.
我正在寻找一个互联网Message-ID字段允许的最大字符长度,以便在应用程序中进行验证.我已经审查了RFC-2822和维基百科"消息ID"等来源以及此SO问题,以及其他各种地方.我能找到的最接近的答案是"998个字符",因为这是规范允许互联网消息中每一行的最大长度(来自RFC-2822),而Message-ID字段不能是多行.
998个字符是最终的答案吗?没有这样的限制吗?
.net ×5
c# ×5
vb.net ×2
api ×1
asp.net-mvc ×1
async-await ×1
collation ×1
database ×1
email ×1
group-by ×1
inner-join ×1
join ×1
maxlength ×1
process ×1
select ×1
sql ×1
sql-server ×1
streamwriter ×1
validation ×1
vb.net-to-c# ×1
winforms ×1