小编Gra*_*ier的帖子

如何在C#/ MVVM应用程序中解决莫名其妙的ObjectDisposedExceptions?

我编写了我的第一个MVVM应用程序.当我关闭应用程序时,我常常因ObjectDisposedException而导致崩溃.应用程序窗口消失后,应用程序即将崩溃.

获取堆栈跟踪很困难(参见我的另一个问题),但最后我做了,发现我的堆栈跟踪完全包含在C#库中(kernel32!BaseThreadStart,mscorwks!Thread,mscorwks!WKS等).

此外,这种崩溃是不一致的.在我上次结账和重建之后,它停止了一段时间.然后它又回来了.一旦它开始发生,它就会不断发生,即使我"清理"并重建.但擦拭和结账有时会使它停止一段时间.

我认为发生了什么:

我认为GarbageCollector在处理我的ViewModel时做的很有趣.我的ViewModelBase类析构函数在调用析构函数时有一个WriteLine来记录,而我的4个ViewModel中只有2或3个被处理掉了,它似乎根据结账而变化(例如,当我在我的运行时,我看到一直在重复顺序,但我的同事看到不同的序列与不同的对象处置).

由于堆栈跟踪没有我的代码调用,我认为这意味着我的代码不是调用被处置对象的方法.所以这让我觉得CLR是愚蠢的.

这有意义吗?有什么方法可以让GC保持一致吗?这是红鲱鱼吗?

其他可能
有用的细节:我的所有Views和ViewModel都是在App.xaml.cs文件的Application的Startup事件处理程序中创建的.同一个处理程序将ViewModels分配给DataContexts.我不确定这是否是正确的MVVM实践(正如我所说的,我的第一个MVVM应用程序),但我不明白为什么它会导致不良行为.

如有必要,我可以粘贴代码.

c# garbage-collection mvvm objectdisposedexception

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

无法将第一个用户插入Rails/devise用户表

我在播放用户表时遇到问题.

(rails 3.2.6,jruby 1.6.7.2,devise 2.1.2)

这是一个非常通用的用户表,由"rails generate devise User"生成,加上此howto页面描述的修改,以便用户可以使用用户名而不是电子邮件地址登录.

rails db:seed没有给出任何错误迹象,日志也没有.当我使用sqlite控制台确认时,表是空的. 是的,它正在使用开发环境.我对此进行了双倍和三重检查.

当我使用rails console并输入创建命令时,我得到:

1178 ~/dev/proj$ rails console
Loading development environment (Rails 3.2.6)
jruby-1.6.7.2 :001 > User.create( 
jruby-1.6.7.2 :002 >       :username             => 'admin',
jruby-1.6.7.2 :003 >       :email                => 'admin@fake.com', 
jruby-1.6.7.2 :004 >       :password             => 'admin',
jruby-1.6.7.2 :005 >       :password_confirmation => 'admin', 
jruby-1.6.7.2 :006 >     )
    User Exists (1.0ms)  SELECT 1 AS one FROM "users" WHERE "users"."email" = 'admin@x.com' LIMIT 1
    => #<User id: nil, email: …
Run Code Online (Sandbox Code Playgroud)

devise ruby-on-rails-3.2

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

python的datetime模块中缺少属性

我在python中遇到了datetime模块,因为这是我第一次在脚本中需要它.

但我真的遇到了问题,例如:

import datetime

date_now = datetime.date.today()

print date_now
Run Code Online (Sandbox Code Playgroud)

作为一个答案我得到:

Traceback(最近一次调用最后一次):

文件"datetime.py",第3行,in

import datetime
Run Code Online (Sandbox Code Playgroud)

文件"/root/Desktop/python_work/datetime.py",第5行,in

today = datetime.date.today()
Run Code Online (Sandbox Code Playgroud)

AttributeError:'module'对象没有属性'date'

然后我检查了我的datetime模块列出属性:

导入日期时间

for p in dir(datetime):

    print p
Run Code Online (Sandbox Code Playgroud)

结果我只得到:

> __builtins__
> 
> __doc__
> 
> __file__
> 
> __name__
> 
> __package__
> 
> datetime
Run Code Online (Sandbox Code Playgroud)

是的,真的,'module'对象没有属性'date',它真的没有它.

有什么想法,应该添加到python安装或如何解决它?

python datetime module properties

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

quickfixj 交换组顺序

我想生成一个包含 2 个组NoMDEntryTypes(267) 和NoRelatedSym(146)的市场数据请求,如下所示:

267=2 269=0 269=1 146=1 55=EUR/USD
Run Code Online (Sandbox Code Playgroud)

但是当我以某种方式发送消息时,quickfixj 或我的数据字典将组的顺序交换为以下内容:

146=1 55=EUR/USD 267=2 269=0 269=1 
Run Code Online (Sandbox Code Playgroud)

即使我创建了一个直接字符串消息并通过我的数据字典对其进行验证,也会发生这种情况。

我该怎么做才能使组按我想要的顺序排列?!谢谢

quickfix quickfixj

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

如何打开垂直分割下方的quickfix窗口?

我通常使用几个垂直拆分,以便每个拆分的宽度不超过80个字符(我处理的代码倾向于遵循80列的限制)。但是,对于快速修复程序或位置窗口而言,这通常是不够的。有没有办法像这样在所有垂直裂缝下方打开它?

+----+----+----+
|    |    |    |
|    |    |    |
|    |    |    |
|    |    |    |
+----+----+----+
| quickfix     |
+--------------+
Run Code Online (Sandbox Code Playgroud)

vim

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

C#/ WPF app抛出一个ObjectDisposedException; 为什么我无法捕获或获得堆栈跟踪?

我有一个C#WPF UI应用程序,当我关闭它时,我总是得到一个Windows应用程序崩溃对话框("UIDemo遇到了问题,需要关闭.").

错误报告指示它是一个System.ObjectDisposedException,它指示在已处置对象上调用方法的某个位置.那很好,我明白这一部分.

我很想解决它. 我只是无法在这个混蛋上得到一个堆栈跟踪.

该例外正在逃避以下所有情况:

  • 我的DispatcherUnhandledException处理程序
  • 我的try/catch包含Exit事件处理程序的全部内容
  • 单击该应用程序崩溃对话框中的"调试"将关闭它并且不执行任何操作
  • 在VisualStudio的调试模式下运行应用程序似乎可以工作,但奇怪的是,它似乎没有这种方式崩溃,所以没有跟踪

我必须继续的是Windows发送给MS的错误报告的神秘内容.这些十六进制的内存转储并不是那么有用.

有谁知道我怎么能得到那个痕迹?

c# wpf stack-trace objectdisposedexception

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

获取操作系统版本,电池,存储,内存等系统信息

我正在开发一个需要显示一些设备信息的应用程序,有人可以帮我验证是否合法提取这些信息,可能一些代码片段会非常有用.

提前致谢 !

设备信息:

  • 保持电池状态
  • 电话充电
  • 设备OS版本
  • 当前应用版本
  • 有效内存
  • 可用存储

ios

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

如何修复MySQL数据编码

我正在使用名称latin1集(使用latini_swedish_ci排序规则)保存名称的数据库,但名称使用的是波斯语。

似乎有些主体将表排序规则更改为utf8utf8_bin),但数据仍然像这样:

在此处输入图片说明

我想知道如何解决这个问题。

我更改了表排序规则和DB排序规则,但仍然有这种值。任何帮助将不胜感激。

提前致谢

mysql character-encoding

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

命令适用于交互式shell,但不适用于shell脚本

我编写了一个脚本,它将为javac生成适当的参数来编译我的项目,以便更好地掌握shell脚本.

这很奇怪..脚本运行完美,但是如果脚本运行带有这些参数的javac它不起作用,并且如果我在交互式shell中运行完全相同的命令它.一切都以绝对路径输出,所以我在这里几乎不知所措.

示例目录结构:

src/File.java
src/File.png
src/dir/File2.java
jars/Library.jar
Run Code Online (Sandbox Code Playgroud)

预期产量:

build/File.class
build/File.png
build/dir/File2.class
Run Code Online (Sandbox Code Playgroud)

shell脚本:

#! /bin/sh

cwd=$(pwd)

if [ -d "build" ]; then
    rm -rf $cwd/build/*
else
    mkdir $cwd/build
fi

find $cwd/src \( ! -path '*/.*' \) -type f ! -iname "*.java" | xargs -I{} cp --parents {} $cwd/build

cmd=$(echo javac -sourcepath $cwd/src -classpath $(find $cwd/jars -type f | awk '{ printf("\"%s\";", $0);}'  | awk '{ print substr($0, 0, length($0)); }') -d $cwd/build $(find $cwd/src \( ! -path '*/.*' \) …
Run Code Online (Sandbox Code Playgroud)

bash shell debian javac

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