小编Gul*_*llu的帖子

通过双击或从cmd窗口检测bat文件是否正在运行

我有一个bat文件,可以执行大量操作并关闭cmd窗口,当用户从资源管理器中双击bat文件时,该窗口很好.但是,如果我从cmd> c:\ myfile.bat中已经打开的cmd窗口运行bat文件,那么我不希望bat文件关闭cmd窗口(END),因为我需要做其他事情.我需要bat dos命令代码,它会做类似的事情

if (initiated_from_explorer) then
else
endif
Run Code Online (Sandbox Code Playgroud)

这可能吗 ?谢谢

windows cmd

27
推荐指数
5
解决办法
9443
查看次数

visual studio 2010调试器找到goto当前行停在快捷键上

1)我放了一个断点,VS断开我放断点的地方.

2)然后我开始浏览代码,通常在执行路径的某处放置另一个断点.(可能在其他一些cs文件的另一个类中)

3)我现在想回到我第一次停止的地方(只需在代码中导航.不要混淆VS的intellitrace调试工具中使用的调试器功能)

现在我放置一个书签并返回我的书签.但我大部分时间都忘记放置书签.因此这个问题.必须有一个快捷方式来回到当前的执行行或停止在或用于描述这个的任何短语.如果我可以制作一些热键或捷径,我也有Resharper.无论如何,我可以回到调试器"破坏"的地方.我有时也会使用Ctrl - 多次向后导航.谢谢

debugging resharper keyboard-shortcuts shortcut

22
推荐指数
2
解决办法
5651
查看次数

在c#中取消多个任务的正确方法是什么

我有一个按钮,可以产生4个任务.相同的按钮更改为取消按钮,单击此按钮将取消所有4个任务.我是否应该将相同的取消令牌传递给所有4个任务并让他们对IsCancelRequested的相同令牌进行轮询?在createlinkedtokensource上阅读msdn doc后我很困惑.这通常是怎么做的?谢谢

更新:Task.WaitAll()等待所有任务完成执行.类似地,一旦共享取消令牌源设置为取消,如何知道何时取消所有任务.

c# task pfx task-parallel-library c#-4.0

22
推荐指数
1
解决办法
1万
查看次数

使用blockingcollection和tasks .net 4 TPL的经典生产者消费者模式

请参阅下面的伪代码

//Single or multiple Producers produce using below method
    void Produce(object itemToQueue)
    {
        concurrentQueue.enqueue(itemToQueue);
        consumerSignal.set;
    }

    //somewhere else we have started a consumer like this
    //we have only one consumer
    void StartConsumer()
    {
        while (!concurrentQueue.IsEmpty())
        {
            if (concurrentQueue.TrydeQueue(out item))
            {
                //long running processing of item
            }
        }
        consumerSignal.WaitOne();
    }
Run Code Online (Sandbox Code Playgroud)

我如何移植这种模式,我从远古时代就开始使用taskfactory创建的任务和net 4的新信号功能.换句话说,如果有人用net 4编写这个模式,它会是什么样子?伪代码很好.如你所见,我已经使用.net 4 concurrentQueue了.如何使用任务并可能使用一些新的信令机制.谢谢

通过Jon/Dan解决我的问题.甜.没有手动信号或while(true)或while(itemstoProcess)类型循环像过去那样

//Single or multiple Producers produce using below method
 void Produce(object itemToQueue)
 {
     blockingCollection.add(item);
 }

 //somewhere else we have started a consumer like this
 //this supports …
Run Code Online (Sandbox Code Playgroud)

c# multithreading scheduled-tasks pfx task-parallel-library

19
推荐指数
2
解决办法
3万
查看次数

与SQL Server一起使用时如何定期刷新dapper.net缓存

有人可以解释一下这意味着什么(来自Dapper.net网站)

限制和警告

Dapper缓存有关它运行的每个查询的信息,这允许它快速实现对象并快速处理参数.当前实现将此信息缓存在ConcurrentDictionary对象中.它存储的对象永远不会被刷新.如果您在不使用参数的情况下动态生成SQL字符串,则可能会遇到内存问题.我们可以将字典转换为LRU缓存.

我无法理解粗体表示的行.我正在使用SQL Server和c#客户端.

有人可以提供一些c#代码示例,这些代码会产生内存问题.谢谢

c# t-sql orm sql-server-2005 dapper

19
推荐指数
1
解决办法
4398
查看次数

如何让智能手机像滚动winforms触摸屏应用程序(滚动面板)

在网上搜索完文章后,我想出了一个基于winforms的触摸屏应用程序的设计,需要像滚动一样的智能手机.该应用程序本身将在平板电脑或触摸屏桌面上运行.

  • 我把我要滚动的所有东西放在面板上.
  • 将autoscroll设置为true(将显示滚动条)
  • 现在将整个面板放在一个组合框中
  • 缩小组合框,直到隐藏滚动条(视觉上隐藏,不可见= false)

现在我被困在了有趣的部分.我想我必须在面板上处理mousedown,mouseup和mousemove以设置自动滚动位置,以便当有人触摸面板并拖动时,它会滚动魔术.请帮助填写以下方法存根中的几行代码.autoscrollposition上的msdn doc非常令人困惑,因为它返回负数,但需要设置为abs,而不是.

Point mouseDownPoint;
Point mouseUpPoint;
Point mouseDragPoint;
 private void myPanel_MouseDown(object sender, MouseEventArgs e)
 {
    this.mouseDownPoint = e.Location;
    Console.WriteLine("Mouse down at {0}", e.location);
 }

 private void myPanel_MouseUp(object sender, MouseEventArgs e)
 {
    this.mouseUpPoint = e.Location;
    this.mouseDownPoint = new Point(); //will set for IsEmpty check
    Console.WriteLine("Mouse Up at {0}", e.location);
 }

 private void myPanel_MouseMove(object sender, MouseEventArgs e)
 {
    Console.WriteLine("Mouse at {0}", e.location);
    if (mouseDownPoint.IsEmpty()) //finger is off the touchscreen
       return;
    myPanel.Autocrollposition = …
Run Code Online (Sandbox Code Playgroud)

c# vb.net user-controls scroll touchscreen

14
推荐指数
3
解决办法
1万
查看次数

使用多个参数启动任务的标准做法是什么?

现在我有

class MyParamClass
{
   all the parameters I need to pass to the task
}

MyParamClass myParamObj = new MyParamClass();
myParamObj.FirstParam = xyz;
myParamObj.SecondParam = abc;
mytask = new Task<bool>(myMethod, myParamObj,_cancelToken);
mytask.Start()

bool myMethod(object passedMyParamObj)
{
   MyParamClass myParamObj = passedMyParamObj as MyParamClass;
  //phew! finally access to passed parameters
}
Run Code Online (Sandbox Code Playgroud)

无论如何,我可以做到这一点,而无需创建类MyParamClass?如何在没有这种麻烦的情况下将多个参数传递给任务?这是标准做法吗?谢谢

c# multithreading task pfx task-parallel-library

9
推荐指数
2
解决办法
4683
查看次数

如何使用tortoise hg"作为存储库的一部分"来忽略kiln/mercurial中的文件

我们用窑龟用hg.在我的vs 2010 c#项目中,有一些文件是存储库的一部分但是我想在我提交时忽略它们.例如,在登录屏幕中,我可以硬编码用户ID,密码用于测试.我真的不希望在提交期间考虑此文件.我理解.hgignore文件,但这确实适用于不属于repo的文件.在togise 中有什么技巧可以忽略属于repo的文件?(因此在提交期间它们不会显示为已修改的(M).)谢谢

mercurial dvcs tortoisehg kiln

8
推荐指数
1
解决办法
2341
查看次数

如何使用Colllection.ToDictionary()将Dictionary <dynamic,dynamic>转换为Dictionary <string,string>

我正在使用Dapper将2列结果集提取到字典中.我注意到当我将鼠标悬停在结果集上时,intellisense向我显示了一个.ToDictionary(),但由于dapper使用动态属性/ expandoObject,我无法使其工作

Dictionary<string, string > rowsFromTableDict = new Dictionary<string, string>();
using (var connection = new SqlConnection(ConnectionString))
{
   connection.Open();
   var results =  connection.Query
                  ("SELECT col1 AS StudentID, col2 AS Studentname 
                    FROM Student order by StudentID");
    if (results != null)
    {
    //how to eliminate below foreach using results.ToDictionary()
    //Note that this is results<dynamic, dynamic>
         foreach (var row in results)
         {
              rowsFromTableDict.Add(row.StudentID, row.StudentName);
         }
         return rowsFromTableDict;
     }
}
Run Code Online (Sandbox Code Playgroud)

谢谢

c# expando expandoobject c#-4.0 dapper

8
推荐指数
1
解决办法
3836
查看次数

linq歧义在哪里和选择

今天我遇到了一个问题,LINQ对象(不是SQL)由于打字错误而弹出.我有.Select一个地方.Where,另一个地方.我期待相同的结果,但他们显示不同的数字.假设somelist有10个元素,所有元素都具有qty=0

//returns 10 - basically count of all rows. I am expecting 0
 somelist.Select(p => p.qty > 0).Count() 

//returns 0 - the correct count
 somelist.Where(p => p.qty > 0).Count() 
Run Code Online (Sandbox Code Playgroud)

如果两者都选择和返回IEnumerable<T>那么为什么模棱两可?谢谢.

c# linq vb.net lambda c#-4.0

8
推荐指数
1
解决办法
1358
查看次数