小编Cha*_*thJ的帖子

如何在没有等待的情况下在C#中安全地调用异步方法

我有一个async不返回任何数据的方法:

public async Task MyAsyncMethod()
{
    // do some stuff async, don't return any data
}
Run Code Online (Sandbox Code Playgroud)

我从另一个返回一些数据的方法调用它:

public string GetStringData()
{
    MyAsyncMethod(); // this generates a warning and swallows exceptions
    return "hello world";
}
Run Code Online (Sandbox Code Playgroud)

MyAsyncMethod()没有等待的情况下进行呼叫会导致" 因为此呼叫未被等待,当前方法在呼叫完成之前继续运行 "在visual studio中发出警告.在该警告的页面上,它指出:

只有当您确定不想等待异步调用完成并且被调用的方法不会引发任何异常时,才应考虑禁止警告.

我确定我不想等待电话完成; 我不需要或没有时间.但这一呼吁可能引发例外.

我偶然发现了这个问题几次,我确信这是一个必须有共同解决方案的常见问题.

如何在不等待结果的情况下安全地调用异步方法?

更新:

对于那些建议我等待结果的人来说,这是响应我们的Web服务(ASP.NET Web API)上的Web请求的代码.在UI上下文中等待保持UI线程空闲,但是在Web请求调用中等待将在响应请求之前等待任务完成,从而无缘无故地增加响应时间.

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

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

ResourceDictionary在一个单独的程序集中

我有资源字典文件(MenuTemplate.xaml,ButtonTemplate.xaml等),我想在多个单独的应用程序中使用.我可以将它们添加到应用程序的程序集中,但如果我在一个程序集中编译这些资源并让我的应用程序引用它,那就更好了吧?

构建资源程序集后,如何在我的应用程序的App.xaml中引用它?目前,我使用ResourceDictionary.MergedDictionaries来合并各个字典文件.如果我在一个程序集中有它们,我怎么能在xaml中引用它们?

.net wpf xaml resourcedictionary controltemplate

236
推荐指数
6
解决办法
13万
查看次数

如何在Visual Studio中找到堆栈跟踪?

我问,因为我在Visual Studio中找不到堆栈跟踪,同时调试发生的异常.

.net debugging exception-handling stack-trace visual-studio

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

从实体框架中删除单个记录?

我在实体框架中有一个SQL Server表,名为employ一个名为的单个键列ID.

如何使用Entity Framework从表中删除单个记录?

c# sql-server entity-framework

184
推荐指数
6
解决办法
30万
查看次数

正确实现IDisposable

在我的类中,我实现IDisposable如下:

public class User : IDisposable
{
    public int id { get; protected set; }
    public string name { get; protected set; }
    public string pass { get; protected set; }

    public User(int UserID)
    {
        id = UserID;
    }
    public User(string Username, string Password)
    {
        name = Username;
        pass = Password;
    }

    // Other functions go here...

    public void Dispose()
    {
        // Clear all property values that maybe have been set
        // when the class was instantiated
        id = 0; …
Run Code Online (Sandbox Code Playgroud)

.net c# garbage-collection memory-leaks memory-management

132
推荐指数
6
解决办法
10万
查看次数

HttpWebRequest使用基本身份验证

我正在尝试通过一个身份验证请求来模仿我们习惯在为此行为设置IIS时看到的"基本身份验证请求".

URL为:https
://telematicoprova.agenziadogane.it/TelematicoServiziDiUtilitaWeb/ServiziDiUtilitaAutServlet?UC =22&SC=1&ST=2(警告:https!)

此服务器在UNIX和Java下作为应用程序服务器运行.

这是我用来连接到此服务器的代码:

CookieContainer myContainer = new CookieContainer();
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://telematicoprova.agenziadogane.it/TelematicoServiziDiUtilitaWeb/ServiziDiUtilitaAutServlet?UC=22&SC=1&ST=2");
request.Credentials = new NetworkCredential(xxx,xxx);
request.CookieContainer = myContainer;
request.PreAuthenticate = true;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Run Code Online (Sandbox Code Playgroud)

(我从本网站上的另一篇文章中复制了此内容).但我从服务器收到这个答案:

底层连接已关闭:发送时发生意外错误.

我想我尝试了所有可能的任务,我对C#的知识必须提供给我,但没有...

c# authentication credentials webrequest

130
推荐指数
6
解决办法
28万
查看次数

107
推荐指数
6
解决办法
10万
查看次数

是否可以在Windows表单标签上选择文本?

是否可以在Windows窗体标签控件中突出显示/选择部分文本?我知道它可能与RTFtextbox控件,但使用该控件将是过度的,因为我需要创建标签的许多实例.

.net c# asp.net label winforms

53
推荐指数
5
解决办法
4万
查看次数

如何使用licenses.licx文件

我有一个包含在我的项目属性中的licenses.licx文件.我不确定它的dll是如何使用它的.它是否被msbuild使用?您是否知道在解决方案构建时如何使用它?

c# cruisecontrol.net msbuild visual-studio

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

C#Array.Contains()编译错误

我正在尝试在C#中使用Array.Contains()方法,并且由于某种原因它无法编译,尽管我相信我正在使用C#4.0,而C#应该在3.0及更高版本中支持它.

if (! args.Contains ("-m"))
    Console.WriteLine ("You must provide a message for this commit.");
Run Code Online (Sandbox Code Playgroud)

我收到这个错误:

Main.cs(42,15):错误CS1061:'System.Array'不包含'Contains'的定义,并且没有扩展方法'Contains'接受类型'System.Array'的第一个参数可以找到(你是吗?)缺少using指令或程序集引用?)

我正在从命令行编译,没有选项:"csc Main.exe".

.net c# linq

41
推荐指数
3
解决办法
4万
查看次数