问题列表 - 第48356页

我为什么要避免使用Dispatcher?

我已经阅读了很多关于绑定和GUI控件的线程亲和性的帖子,文章等.有些帖子中人们不想使用Dispatcher.

我还有一个同事避免在他的代码中使用Dispatcher.我问他原因,但他的回答并不能让我满意.他说,他不喜欢隐藏在课堂上的这种"魔法".

好吧,我是下一堂课的粉丝.


public class BindingBase : INotifyPropertyChanged
{
   public event PropertyChangedEventHandler PropertyChanged;

   private Dispatcher Dispatcher
   {
#if SILVERLIGHT
      get { return Deployment.Current.Dispatcher; }
#else
      get { return Application.Current.Dispatcher; }
#endif
   }

   protected void RaisePropertyChanged<T>(Expression<Func<T>> expr)
   {
      var memberExpr = (MemberExpression)expr.Body;
      string property = memberExpr.Member.Name;

      var propertyChanged = PropertyChanged;
      if (propertyChanged == null) return;

      if (Dispatcher.CheckAccess())
         propertyChanged.Invoke(this, new PropertyChangedEventArgs(property));
      else
         Dispatcher.BeginInvoke(() => RaisePropertyChanged(expr));
   }
}
Run Code Online (Sandbox Code Playgroud)

这是个问题.有些人不想使用这样的课程有什么理由吗?也许我必须重新考虑这种方法.

你必须承认,有一件奇怪的事情.Dispatcher.CheckAccess()被Intellisense排除在外.由于这个事实,也许他们有点可怕.

问候

编辑:

好的,另一个例子.考虑一个复杂的对象.作为例子的集合可能不是最好的主意.


public class ExampleVm : BindingBase
{ …
Run Code Online (Sandbox Code Playgroud)

data-binding silverlight wpf

7
推荐指数
1
解决办法
1773
查看次数

ant copy filterset

为什么下面的代码不起作用?在创建的新文件中,filterset不会执行单个替换

<copy file="${WT_HOME}/conf/auditing/configAudit.xml"
      tofile="${WT_HOME}/conf/auditing/configAudit1.xml" 
      overwrite="true">
    <filterset>
        <filter token="false" value="true"/>
    </filterset>
</copy>
Run Code Online (Sandbox Code Playgroud)

ant filter

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

iOS - 如何检查NSOperation是否在NSOperationQueue中?

来自文档:

操作对象一次最多只能有一个操作队列,如果操作已经在另一个队列中,则此方法抛出NSInvalidArgumentException异常.同样,如果操作当前正在执行或已经完成执行,则此方法抛出NSInvalidArgumentException异常.

那么如何检查我是否可以安全地将NSOperation添加到队列中?

我知道的唯一方法是添加操作,然后尝试捕获异常,如果操作已经在队列中或之前执行过.

iphone objective-c nsoperation nsoperationqueue ios

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

如何防止传递给UIView的超级视图的触摸事件?

我制作了一个程序,其中包含可以拖动以在屏幕上移动的图片.我也使用UIScrollView,因为空间大于窗口.我将UIView子类化为图片视图,以显示图片并处理此类中的触摸.图片视图作为子视图添加到scrollView.但现在我遇到了一个问题:当我拖动图片时,scrollView会与图片一起移动.我想知道是否有办法消耗图片类中的触摸以防止它们传递给superview.

iphone cocoa-touch uiscrollview

5
推荐指数
2
解决办法
8024
查看次数

python是否像c ++等其他语言一样强大?

我期待着开始学习.人们告诉我这是有能力的.虽然我还没有看到任何好看的游戏.在pygame上有一些不错的,但没有一个真正脱颖而出.

我想知道python是否真的像其他语言一样强大.

编辑:谢谢你们,python是否适合游戏开发?

python

0
推荐指数
1
解决办法
157
查看次数

OpenCV的cvWaitKey()函数有什么作用?

执行期间会发生什么cvWaitKey()?什么是典型的用例?我在OpenCV参考中看到过,但文档的确切用途并不明确.

c c++ opencv

74
推荐指数
7
解决办法
14万
查看次数

如何让Git显示文件的版本历史记录

我过去一直是CVS用户,虽然我认为Git是一个很好的版本控制系统,但我错过了我在CVS中的功能.具体来说,我想查看文件的版本历史记录,例如其上的标记.我怎么能在Git中做到这一点?

tags git history file version

2
推荐指数
1
解决办法
4286
查看次数

.Net垃圾收集器 - 查看运行时期间提升为Gen2的内容

我的程序以非常高的速率(大约1MB /秒)向Gen2提升内存,并且当Gen2收集发生时它会导致性能损失.我为了解哪些对象被提升而做出的每一次尝试都失败了 - 主要是因为当我在windbg中打开2个转储时,Gen2大小增加的内存被标记为"Free".这让我怀疑Pinned对象引起了问题,但是perfmon统计数据显示固定对象的数量非常低(大约2-4).

我现在正在考虑的是以某种方式识别哪些对象在运行时被提升为Gen2.有这样做的方法吗?

.net c# debugging garbage-collection windbg

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

我可以在单独的模块中路由express控制器和基本nodejs服务器

我有一个要求.denpends上HOST头使用不同的模块,就像使用expressjs www.myhost.com,并且*.h.myhost.com使用基本的NodeJS https.createServer().它们在同一个港口工作.

https.createServer(options,function(req, res){
   if(req.host === "www.myhost.com"){
       express.handle(req,res) //what I hope
       return 
   }
   //handle by normal way
})
Run Code Online (Sandbox Code Playgroud)

这该怎么做?

node.js express

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

存储过程的返回值仅在ASP.NET中获取第一个字符

从存储过程获取返回值时,它只返回第一个字符,

Exec sp_Auto_Gen_TTBDBatNo 'TT', '' 在SQL Server中获取整个字符串,但在ASP.NET中它获取第一个字符.

如何获得整个字符串值?

CREATE PROC sp_Auto_Gen_TTBDBatNo
      @Prefix nvarchar(2),
      @Result nvarchar(8) output
AS
BEGIN
    DECLARE @LastValue int


    -- CompanyCode = @CompanyCode AND BankCode = @BankCode AND AccountCode = @AccountCode

    SET NOCOUNT ON
    If @Prefix = 'BD'
        SELECT @LastValue = MAX(RIGHT(RTRIM(ISNULL(BatchNo, '')),2)) from dbo.Cheque_IssueRecord_Secretary_Review_BD WHERE ISNUMERIC(RIGHT(RTRIM(BatchNo),2))= 1 AND LEN(RIGHT(RTRIM(BatchNo),2)) = 2
    ELSE
        SELECT @LastValue = MAX(RIGHT(RTRIM(ISNULL(BatchNo, '')),2)) from dbo.Cheque_IssueRecord_Secretary_Review_TT WHERE ISNUMERIC(RIGHT(RTRIM(BatchNo),2))= 1 AND LEN(RIGHT(RTRIM(BatchNo),2)) = 2

    SET NOCOUNT OFF
    set @Result = @Prefix + RIGHT(RTRIM(STR(year(getdate()))),2)+RIGHT('0'+LTRIM(RTRIM(STR(month(getdate())))),2) + RIGHT('0'+LTRIM(RTRIM(STR(ISNULL(@LastValue,0)+1))),2) …
Run Code Online (Sandbox Code Playgroud)

.net c# sql-server asp.net ado.net

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