LibGit2Sharp 反应迟钝
LibGit2Sharp Unresponsiveness
我一直在四处寻找,我正在寻找一种方法来拉动我的 git 文件,但又不会影响我的启动器的响应速度。我已经完成了异步阅读,我不确定它是否可能。
现在我有
private void Install() {
Repository.Clone("Myrepourl", "Localinstall");
}
要提取的信息量相当大,因此我想在 Rep 从我共有的 4 个回购中提取信息时向他们提供更新。浏览器
private void Install() {
Repository.Clone("url", "local");
installstatus.Text = "Pulling next repo";
Repository.Clone("url", "local");
}
这可以 运行 异步还是只能同步工作?
运行 Task
和 TransferProgress
事件中的 Clone
是我处理它的方式。
基于任务的控制台示例:
class MainClass
{
public static void Main(string[] args)
{
Task.Run(() =>
{
Repository.Clone("https://github.com/sushihangover/SVGKit.Binding", Path.Combine(Path.GetTempPath(), "foobar"),
new CloneOptions { OnTransferProgress = MainClass.TransferProgress });
}).Wait();
}
public static bool TransferProgress(TransferProgress progress)
{
Console.WriteLine($"Objects: {progress.ReceivedObjects} of {progress.TotalObjects}, Bytes: {progress.ReceivedBytes}");
return true;
}
}
我一直在四处寻找,我正在寻找一种方法来拉动我的 git 文件,但又不会影响我的启动器的响应速度。我已经完成了异步阅读,我不确定它是否可能。 现在我有
private void Install() {
Repository.Clone("Myrepourl", "Localinstall");
}
要提取的信息量相当大,因此我想在 Rep 从我共有的 4 个回购中提取信息时向他们提供更新。浏览器
private void Install() {
Repository.Clone("url", "local");
installstatus.Text = "Pulling next repo";
Repository.Clone("url", "local");
}
这可以 运行 异步还是只能同步工作?
运行 Task
和 TransferProgress
事件中的 Clone
是我处理它的方式。
基于任务的控制台示例:
class MainClass
{
public static void Main(string[] args)
{
Task.Run(() =>
{
Repository.Clone("https://github.com/sushihangover/SVGKit.Binding", Path.Combine(Path.GetTempPath(), "foobar"),
new CloneOptions { OnTransferProgress = MainClass.TransferProgress });
}).Wait();
}
public static bool TransferProgress(TransferProgress progress)
{
Console.WriteLine($"Objects: {progress.ReceivedObjects} of {progress.TotalObjects}, Bytes: {progress.ReceivedBytes}");
return true;
}
}