方法返回一个任务,如何获得返回值?

假设我有这个代码调用服务并返回一个任务: public async Task<List> GetList() { client.BaseAddress = new Uri(“http://localhost9999/”); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(“application/json”)); HttpResponseMessage response = await client.GetAsync(“api/listofstrings”); var json = response.Content.ReadAsStringAsync().Result; var myStr = JsonConvert.DeserializeObject<List>(json); var list = new List(myStr); return list; } 如果这个methpd只返回一个字符串列表,我可以这样做: var myList = new List(); myList = GetList() 如何在任务中获得类似的结果? 我在考虑这个错误的方式吗? 当然我应该能够将方法的结果(字符串列表)分配给myList ?

C#如何在面板上绘制橡皮筋选择矩形,就像在Windows资源管理器中使用的一样?

我有一个带有一些用户控件的Flow Layout面板。 我想使用鼠标选择这些控件,就像在Windows文件浏览器中使用的一样。 我试过这些: https : //support.microsoft.com/en-us/kb/314945但是它非常闪烁而没用(我可能错了,请指正)。 任何好的例子请。

快速C ++程序,C#GUI,可能吗?

我正在研究开发一种应用程序,它将以每秒约2000行(帧)的速度处理来自线扫描相机的数据。 对于这个实时应用程序,我觉得C / C ++是要走的路。 (这是我的感觉,其他人会同意托管代码不适合这项任务。) 但是,我做了很少的MFC或任何其他C ++ GUI。 不过,我真的很想做C#GUI。 所以我很自然地用C / C ++编写数据密集型代码,用C#编写GUI。 GUI将用于设置/校准/在线监控(并可能通过UDP输出数据,因为它在C#中更容易。 首先,我想看看是否有人同意这是可行的方法。 根据我的编程经验(擅长低级C算法和高级C#GUI设计),它感觉恰到好处。 其次,我不确定正确的方法。 我只是在VS2005中汇总了一个解决方案,该解决方案从C#app调用了一些(extern“C”)DLL函数。 为了确保我能做到,我写了DLL中的一些全局变量,并从中读取: test.h int globaldata; extern “C” __declspec(dllexport) void set(int); extern “C” __declspec(dllexport) int get(); TEST.CPP extern int data=0; __declspec(dllexport) void set(int num) { data = num; } __declspec(dllexport) int get() { return data; } test.cs中 [DllImport(“test”)] […]

C#Mysql executtenonqueryasync不是异步的

我想获得教授这种特定类型的教师名单: public static async Task getTeacherSHS() { DataTable dt = new DataTable(); string query = @”some long query dont mid this”; using (MySqlConnection conn = new MySqlConnection(cs)) { try { await conn.OpenAsync(); using( MySqlCommand cmd = new MySqlCommand(query,conn)) { cmd.Parameters.AddWithValue(“@shs”, “%SHS%”); cmd.Parameters.AddWithValue(“@term”, term); await cmd.ExecuteNonQueryAsync(); using (MySqlDataAdapter da = new MySqlDataAdapter(cmd)) { await da.FillAsync(dt); MySqlCommandBuilder […]

multithreading服务,BackgroundWorker与ThreadPool?

我有一个.NET 3.5 Windows服务。 我正在使用一个小应用程序进行测试,该应用程序在启动后只是睡眠线程,随机时间间隔为300到6500毫秒。 我对这个问题有各种各样的疑问。 BackgroundWorker是否真的只适用于WinForms应用程序,或者这只是废话,究竟是如何调整到这种效果的呢? 我已经在这个问题和这个 问题中读到了关于ThreadPool的内容。 我不确定线程​​会持续半秒到几秒之间的问题对我来说有多大问题。 这个理由足以让人看到其他地方吗? 我自己最好只创建后台线程吗? 现实生活中的服务将轮询数据库中的待处理请求列表,为每个请求执行线程(限于一定数量的并发线程),每个线程将检查数据库中是否存在某些数据,如果它可以,或从流API下载,存储它,并返回该数据。 下载将是消耗最多时间的部分。 我真的希望在.NET 3.5 Framework中回答这个问题,但如果在.NET 4.0下有更好或更有效的方法来实现这一点,我也想了解它们。 更多信息的链接也非常受欢迎。

如何在Web服务器和站点服务器之间建立双向通信?

我正在计划一个SaaS系统,用C#编写,ASP.NET使用WCF,它有两个独立的组件: 在云中的静态IP Web服务器上将是一个Web应用程序,对所有客户端都是通用的。 在每个客户的办公室内将是另一个应用程序,安装在带IIS的服务器上。 该站点应用程序显然可以连接到网站上发布的Web服务。 但这就是问题 – 我还希望网络应用程序能够启动与站点应用程序的连接……并且现场服务器可能不一定具有静态IP。 我无法控制这一点,因为我们将来可能会有数百个客户,我们不能通过坚持客户拥有固定IP的服务器来限制我们的销售能力。 那么,怎么做呢? 我可以让网站应用程序每分钟左右“检入”一次,让网络应用程序有可能回复“当你在这里时,请做x,y,z …… ”但似乎非常不优雅。 此外,如果我们谈论数百个客户,我不想用所有这些“嗨那里”轰炸我的网络服务器! 消息,如果它们实际上不是必需的。 有没有更好的办法?

从客户端调用服务器端functionjavascript

可能重复: 如何从客户端调用服务器端function – asp.net 从Javascript调用ASP.NET代码隐藏function 通过JQuery调用ASP.NET服务器端方法 嗨伙计们,在加载aspx页面时,如何使用客户端代码调用服务器端方法?你能展示一个例子吗?

结合LINQ查询

我正在为一组文件结果制作一个小查询。 public class f_results { public String name { get; set; } public DateTime cdate { get; set; } public DateTime mdate { get; set; } public DateTime adate { get; set; } public Int64 size { get; set; } } 我有一个屏幕,用户可以在其上选择他们想要的内容。 目前我通过过滤系统: foundfiles = new BindingList(totalresults.Find(fname.Text,true)); if (fsize.Text.Trim() != “”) { try { Int64 […]

TextBlock中的绑定在WPF中不起作用

我想在我的类中动态更改TextBlock文本。 XAML代码 : C# : string footerMainMenuText = “Setting”; Binding set = new Binding(“”); set.Mode = BindingMode.OneWay; set.Source = footerMainMenuText; Footer_text.DataContext = footerMainMenuText; Footer_text.SetBinding(TextBlock.TextProperty, set); 我检查了最后一行,并正确设置了Footer_text.Text 。 ( Footer_text.Text=”Setting” ),但我的应用程序中的TextBlock没有显示“Setting”。 这里有什么问题?

如何在两个SelectListItem列表之间使用Except()

我有两个类型IEnumerable 我需要创建一个新的IEnumerable ,其中第一个列表的元素在第二个列表中不存在。 我怎样才能做到这一点? 我尝试使用Except()但没有结果…… 示例代码: IEnumerable SelectListItemA = ….; IEnumerable SelectListItemB = ….; IEnumerable Except = SelectListItemA.Except(SelectListItemB);