我创建了Windows Phone 8.1项目,我试图在按钮单击时运行异步方法GetResponse(字符串url)并等待方法完成,但方法永远不会完成.这是我的代码:
private void Button_Click(object sender, RoutedEventArgs
{
Task<List<MyObject>> task = GetResponse<MyObject>("my url");
task.Wait();
var items = task.Result; //break point here
}
public static async Task<List<T>> GetResponse<T>(string url)
{
List<T> items = null;
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
var response = (HttpWebResponse)await Task.Factory.FromAsync<WebResponse>(request.BeginGetResponse, request.EndGetResponse, null);
try
{
Stream stream = response.GetResponseStream();
StreamReader strReader = new StreamReader(stream);
string text = strReader.ReadToEnd();
items = JsonConvert.DeserializeObject<List<T>>(text);
}
catch (WebException)
{
throw;
}
return items;
}
Run Code Online (Sandbox Code Playgroud)
它会挂在task.Wait()上.
我将按钮单击方法更改为异步并在异步方法之前使用等待,我得到结果(await GetResponse<string>("url")
).有什么问题Task<List<string>> task = …
我有这个文本</ul>
.标签之前有一个新行.所以我无法使用此代码删除该行.
str = str.Replace(Environment.NewLine,"");
Run Code Online (Sandbox Code Playgroud)
但是这段代码只适用于通常的字符串.
<ul style="list-style-type:circle;">
<li><a class="ms - wikilink" href="/Test.aspx">Test1</a></li>
</ul>
Run Code Online (Sandbox Code Playgroud) 我如何使用c#代码启动exe文件?所以我有这个:
Process.Start( @"C:\Program Files (x86)\Photoshop\Photoshop.exe");
Run Code Online (Sandbox Code Playgroud)
但是其他机器的路径可能不同.那么有什么想法以不同的方式运行.exe吗?
谢谢!