与最新的提交相比,如何丢弃Github桌面(mac)中的所有更改?
可以单击一个文件并选择"放弃更改".但是如何丢弃文件中的所有更改?
我有一份任务列表,我想等待.我在等
await TaskEx.WhenAll(MyViewModel.GetListOfTasks().ToArray());
Run Code Online (Sandbox Code Playgroud)
MyViewModel.GetListOfTasks()返回任务列表:
var tasksList = new List<Task>();
foreach (var item in Items)
{
tasksList.Add(item.MyTask());
}
Run Code Online (Sandbox Code Playgroud)
现在,我想返回虚拟任务,这将立即完成.但是,TaskEx.WhenAll会永远等待它:
public Task<bool> MyTask()
{
return new Task<bool>(() => false);
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能返回任务,这将立即完成?
所以,我有这个功能,BitmapImage我需要将它保存到iso存储并转换为Base64(用于发送到服务器).然而,从复制fileStream到memoryStream没有成功.
public void SetImage(BitmapImage bitmap)
{
if (isoFiles.FileExists(Settings.FILE_AVATAR_JPG))
isoFiles.DeleteFile(Settings.FILE_AVATAR_JPG);
var fileStream = isoFiles.CreateFile(Settings.FILE_AVATAR_JPG);
var wb = new WriteableBitmap(bitmap);
wb.SaveJpeg(fileStream, 120, 120, 0, 85); // file is saved
var memoryStream = new MemoryStream();
fileStream.CopyTo(memoryStream); // here, memoryStream is null
byte[] result = memoryStream.ToArray();
fileStream.Close();
var base64 = Convert.ToBase64String(result);
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试包含一个本地库,所以我遵循theese 2教程:如何创建库,如何使用本地库.所以,我有一个很好的示例库(它有package.json,index.ts等),我尝试将它包含在我的主项目中(npm link工作正常,我可以看到我的lib的符号链接),但我不能引用它来自我的主要项目.
import { HelloWorld } from "my-test-lib"; // "Cant find module"
Run Code Online (Sandbox Code Playgroud)
此外,我试图通过安装它npm install ../libs/my-test-lib,但结果是相同的:"无法找到模块".有关如何将其包含在我的项目中的任何建议?
PS:我更喜欢类似的东西npm install,所以我能够将这个变化提交到存储库(与之相反npm link).
编辑(为什么它不重复):在如何将本地模块指定为npm包依赖关系时,不明确哪条路:由于上述原因"bar":"file:../foo/bar",npm link两者都不适用于我.
编辑2:好的,我已经尝试"preinstall": "npm ln my-test-lib ../libs/my-test-lib"过package.json.然后import { HelloWorld } from "my-test-lib";.仍然是相同的错误"无法找到模块".包裹本身可能有问题吗?
EDIT3:是的,这个问题的要点是找出原因
// package.json
"dependencies": {
"my-test-lib": "file:../lib/my-test-lib"
}
// ts file
import { HelloWorld } from "my-test-lib";
Run Code Online (Sandbox Code Playgroud)
不管用.想知道,我该怎么调试呢.
所以,我有一个方法,它包含对服务器的异步调用.该代码是从第三方工具调用的,它有时会从不同的线程连续多次调用相同的方法,所以我不能影响它.
我想要确定的是我的方法被调用一次,然后,应该忽略另一个调用.
起初,我试图用bool isBusy来锁定(locker),但是我不满意,因为异步请求仍然从第二个线程被多次调用,这很快就能看到isBusy = true;
然后,我尝试了Monitor
object obj = new object();
Monitor.TryEnter(obj);
try
{
var res = await _dataService.RequestServerAsync(SelectedIndex, e.StartIndex, e.Count);
****
}
finally
{
Monitor.Exit(obj);
}
Run Code Online (Sandbox Code Playgroud)
然而,在Exit(),我得到例外:
"System.Threading.SynchronizationLockException"类型的第一次机会异常
有没有其他方法可以保证只执行一次代码?
我有一个类,它使用字符串字典.一种方法是初始化字典,另一种方法是将新对添加到字典中,第三种方法是将字典连接成字符串.
我想通过在不同的线程中同时运行init-adding-adding- * -adding-finalizing方法来对它的线程安全进行单元测试.在使用之前创建了类的新实例,字典不是静态的.所以我想知道,如果它安全的话.
Afaik,在单元测试中测试线程并不是一个好主意.相反,我找到了一个CHESS,其设计目的完全相同:http://blog.decarufel.net/2009/05/how-to-test-your-multi-threaded-code.html
然而,看起来它已经过时了.关于这个领域的任何现代替代/建议?
这似乎是一个简单的问题,但我没有找到明确的答案。
将带有dll 的软件包安装到示例空wp7项目后,一切似乎都很好(正确提取了相关性),但是dll本身未添加到项目引用中。而且我在Nuget包资源管理器中看不到相应的设置。
我该如何对nuget自动添加引用的库?
我需要为自己的目的控制一个线程:计算、等待、报告等...
在所有其他情况下,我都使用ThreadPool或 TaskEx。
在调试器中,当我执行操作时Thread.Sleep(),我注意到 UI 的某些部分变得越来越不负责任。不过,没有调试器似乎工作得很好。
问题是:如果我创建新线程并Sleep()对其进行操作,它会影响线程池/任务吗?
编辑:这里是代码示例:
我的应用程序中的一个随机位置:
ThreadPool.QueueUserWorkItem((state) =>
{
LoadImageSource(imageUri, imageSourceRef);
});
Run Code Online (Sandbox Code Playgroud)
我的应用程序中的另一个随机位置:
var parsedResult = await TaskEx.Run(() => JsonConvert.DeserializeObject<PocoProductItem>(resultString, Constants.JsonSerializerSettings));
Run Code Online (Sandbox Code Playgroud)
我的ConcurrentQueue(已修改,原文摘自这里):
为队列需求创建线程:
public void Process(T request, bool Async = true, bool isRecurssive = false)
{
if (processThread == null || !processThread.IsAlive)
{
processThread = new Thread(ProcessQueue);
processThread.Name = "Process thread @ " + Environment.TickCount;
processThread.Start();
}
Run Code Online (Sandbox Code Playgroud)
如果其中一个任务报告一些网络问题,我希望该线程稍等一下
if (ProcessRequest(requestToProcess, true))
{
RequestQueue.Dequeue();
}
else
{
DoWhenTaskReturnedFalse(); …Run Code Online (Sandbox Code Playgroud) c# multithreading threadpool windows-phone-7 windows-phone-8
我正在使用John Papa撰写的Angular Essentials-特别是Tslint和Prettier。由于某种原因,它会转换此代码
this.rM.hA = this.rM.startHA + 2 * diffX * 360 / size;
this.rM.vA = Math.max(Math.min(this.rM.startVA + 2 * diffY * 180 / size, 90), -90);
Run Code Online (Sandbox Code Playgroud)
进入这个
this.rM.hA =
this.rM.startHA + 2 * diffX * 360 / size;
this.rM.vA = Math.max(
Math.min(
this.rM.startVA + 2 * diffY * 180 / size,
90
),
-90
);
Run Code Online (Sandbox Code Playgroud)
我该如何避免呢?我尝试使用tslint.json设置:
“最大线长”:[true,165]
但这对我来说并没有影响。
编辑:由于类似的问题,我试图设置"prettier.printWidth"和"editor.wordWrap",但没有一个帮助。我已经max-line-length按照@ConnorsFan的建议删除了,而我当前的工作区设置(应该覆盖用户设置,对吗?)是
{
“
prettier.printWidth ”:180,“ editor.wordWrap”:“ bounded”,
“ editor.wordWrapColumn”:180} …
正如这里提到的(很棒的博客,顺便说一下),为了正确处理CPU绑定的调用,需要正确的异步调用.例如,不是
await Task.Run(() => Thread.Sleep(100));
Run Code Online (Sandbox Code Playgroud)
但
await Task.Delay(100);
Run Code Online (Sandbox Code Playgroud)
Json.net是否有类似的反序列化?
await TaskEx.Run(() => JsonConvert.DeserializeObject<PocoProduct>(resultString));
Run Code Online (Sandbox Code Playgroud)
使用环境:
async public Task<ProductsAnswer> RequestServerAsync()
{
// Just a wrapper for await httpWebRequest.GetResponseAsync() and await postStreamReader.ReadToEndAsync()
var resultString = await new NetworkManager().GetAsync(Constants.SERVER_REQUEST);
// await TaskEx.Run(() => JsonConvert.DeserializeObject<PocoProduct>(resultString));
var answer = await ParseProductsFromString(resultString);
return answer;
}
Run Code Online (Sandbox Code Playgroud) c# ×7
asynchronous ×1
dll ×1
github ×1
javascript ×1
json ×1
json.net ×1
node.js ×1
npm ×1
nuget ×1
prettier ×1
threadpool ×1
tslint ×1
typescript ×1