我知道有几家Point在.NET结构:System.Drawing.Point,System.Windows.Point,Sys.UI.Point,但所有的人都在高层次的UI库(GDI +,WPF,AJAX).我需要Point在我的类库中进行计算的结构,我不想将其与任何特定的UI技术联系起来.Point.NET中是否有任何与UI无关的结构?或者我需要自己创建它?我知道,这很简单,但听起来像重新发明轮子.
在开发过程中,我经常需要提交并推送"中间"提交,即提交代码不可编译或更改内容等等.我不想做这样的提交,但这是继续我的工作所必需的从办公室到家,有时为其他开发人员提供他们可以开始工作的基础.
我以为我找到了解决这个问题的方法:
我创建一个单独的"dev"分支并进行所有中间提交.
一旦代码处于良好状态,请进行合并以掌握.因此,master不会包含"中间"提交,只会包含"正常"提交.
删除所有中间提交的"dev"分支.
但这不起作用.当我进行合并时,不仅包括合并提交到master,还包括来自"dev"分支的所有"中间"提交.所以删除"dev"分支什么都没有,它的"中间"提交就在那里.
所以问题是:是否有可能以master只包含自己的提交+合并提交的方式进行合并,而不包括第二个分支的提交?如果这是不可能的,你能否告诉我如何实现我的目标 - 能够临时保存中间结果,还能在以后无缝删除它们?
我正在尝试使用MahApps.Metro创建新的WPF应用程序.我完全按照快速入门指南(http://mahapps.com/MahApps.Metro/guides/quick-start.html)中的描述进行操作:
此时我可以运行应用程序,但窗口是透明的.标题栏文本和按钮是可见的(按钮未设置样式),但背景是透明的.
之后我在启动时收到一个例外:
System.IOException
{"Cannot locate resource 'styles/colours.xaml'."}
Run Code Online (Sandbox Code Playgroud)
似乎由于某种原因它无法在程序集中找到资源.但我不明白为什么.
我有一个长时间运行的操作,必须在UI线程中完成(涉及无法冻结的UI元素).我想在运行操作之前显示忙指示符.
busyIndicator.Visibility = Visibility.Visible;
LongRunningMethod();
busyIndicator.Visibility = Visibility.Collapsed;
Run Code Online (Sandbox Code Playgroud)
当然这不起作用,因为在操作完成之前不会进行渲染.我试图使用Task.Yield()以异步方式运行其余的方法:
busyIndicator.Visibility = Visibility.Visible;
await Task.Yield();
LongRunningMethod();
Run Code Online (Sandbox Code Playgroud)
据我所知,这也不起作用,因为该方法的其余部分优先于渲染操作.
我怎么能用TPL做到这一点?
UPD: LongRunningMethod不能在单独的线程中运行(与复杂的WPF 3D模型一起使用),无论如何我现在无法承担更改.因此,请不要提供基于在单独的线程上完全或部分运行它的解决方案.
是否有可能从Visual Studio 2013内置的git客户端强制推送?
我知道这可以通过命令行,但我感兴趣,如果有这样的选项UI.
我正在尝试安装ASP.NET Identity 2示例项目.我打开Visual Studio 2013,创建一个空的ASP.NET项目,打开包管理器控制台并键入:
Install-Package Microsoft.AspNet.Identity.Samples -Pre
Run Code Online (Sandbox Code Playgroud)
安装一段时间后返回错误:
Unable to uninstall 'jQuery 1.10.2' because 'bootstrap 3.0.0' depends on it.
Run Code Online (Sandbox Code Playgroud)
好的,我再次输入安装命令.这次错误是:
Failed to add reference to 'System.Net.Http'. Please make sure that it is in the Global Assembly Cache.
Run Code Online (Sandbox Code Playgroud)
所有后续安装尝试都以相同的错误完成.
UPD:我已经使用"Manage NuGet Packages"UI成功安装了示例.仍然感兴趣为什么它没有在控制台工作?我做错了什么吗?
ICollection<T>在.NET框架中有一个简单的实现吗?即一个集合类,能够添加和删除项目,但没有索引.Collection<T>绝对不适合,因为它也实现IList,所以元素可以通过索引访问.
揭露Collection<T>或List<T>如ICollection<T>不能在我的情况下工作太,因为我需要从它继承我自己的类,以及实现其他类继承的类IList<T>将有索引为好.
我知道自己实施一个并不是什么大事,但只是认为它应该已经存在,搜索但没有找到类似的东西.
private async Task<T> LoadForm(WebControlAsync browser, Uri url)
{ ... }
var forms = await await _dispatcher.InvokeAsync(async () => await LoadForm(browser, form.Url));
Run Code Online (Sandbox Code Playgroud)
我不明白为什么我必须使用两个await的在这里得到T的forms?所以它看起来像InvokeAsync回报Task<Task<T>>.但是当我调用这样的同步方法时:
var forms = await _dispatcher.InvokeAsync(() => FillForm(forms, url));
Run Code Online (Sandbox Code Playgroud)
它只需要单身await.所以原因似乎是异步lambda.我明白,如果我这样写:
var forms = await await _dispatcher.InvokeAsync(() => LoadForm(browser, form.Url));
Run Code Online (Sandbox Code Playgroud)
然后返回类型LoadForm是Task<T>和InvokeAsync返回Task<lambda return type>所以它确实会Task<Task<T>>.但是当一个Task方法被await编辑时,是不是"从"开始实际返回类型Task?所以,如果我写:
var forms = await LoadForm(browser, form.Url);
Run Code Online (Sandbox Code Playgroud)
forms会T …
public class Program
{
static void Main(string[] args)
{
var session = WebCore.CreateWebSession(new WebPreferences { WebSecurity = false });
var browser = WebCore.CreateWebView(1920, 3000, session, WebViewType.Offscreen);
WebCore.ShuttingDown += WebCoreOnShuttingDown;
browser.ConsoleMessage += BrowserOnConsoleMessage;
browser.LoadingFrameComplete += BrowserOnLoadingFrameComplete;
browser.DocumentReady += BrowserOnDocumentReady;
browser.Source = new Uri("http://www.google.ru/");
var error = browser.GetLastError();
Console.ReadKey();
}
private static void BrowserOnConsoleMessage(object sender, ConsoleMessageEventArgs consoleMessageEventArgs)
{
}
private static void WebCoreOnShuttingDown(object sender, CoreShutdownEventArgs coreShutdownEventArgs)
{
}
private static void BrowserOnDocumentReady(object sender, UrlEventArgs urlEventArgs)
{
}
private static void BrowserOnLoadingFrameComplete(object sender, …Run Code Online (Sandbox Code Playgroud) 假设我有以下示例代码:
private static async Task Main(string[] args)
{
var result = Enumerable.Range(0, 3).Select(x => TestMethod(x)).ToArray();
Console.ReadKey();
}
private static int TestMethod(int param)
{
Console.WriteLine($"{param} before");
Thread.Sleep(50);
Console.WriteLine($"{param} after");
return param;
}
Run Code Online (Sandbox Code Playgroud)
TestMethod 将运行完成 3 次,因此我将看到 3 对before和after:
0 before
0 after
1 before
1 after
2 before
2 after
Run Code Online (Sandbox Code Playgroud)
现在,我需要使 TestMethod 异步:
private static async Task<int> TestMethod(int param)
{
Console.WriteLine($"{param} before");
await Task.Delay(50);
Console.WriteLine($"{param} after");
return param;
}
Run Code Online (Sandbox Code Playgroud)
如何为此异步方法编写类似的 Select 表达式?如果我只使用 async lambda Enumerable.Range(0, 3).Select(async x …