问题列表 - 第12950页

创建自定义事件日志

如何以编程方式检查/创建要在Windows XP/2003事件查看器中查看的自定义事件日志?

现在我可以在"应用程序"日志中创建条目,但希望为我的各种应用程序提供自定义日志.

我正在使用C# - .NET Framework 3.5

c#

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

Silverlight WCF服务跨域问题

我有一个silverlight应用程序(托管在intranet.mydomain.net)和一个WCF服务(webservices.mydomain.net)

我是否需要跨站点策略文件?如果是这样,只允许从intranet.mydomain.net访问它会是什么样子?

silverlight service web-services cross-domain

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

Linq Take()问题

我想过滤我的结果只采取X量的记录.我想知道Take()是如何工作的?

在这个网站上我找到了:http://www.hookedonlinq.com/TakeOperator.ashx

它说Take()"如果source为null,则抛出ArgumentNullException." 所以我该怎么做?我不能保证每次我做一个Take()我会在那个表中有一些记录.

所以我首先要做一个计数?然后再做一个查询以确保有一些记录要抓取?

如果我有Take(2)但只有1条记录会抛出同样的异常会发生什么?

linq linq-to-sql

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

是否有像SQL Server的TIMESTAMP列这样的MySQL功能?

我的初步研究说"不".

我在SQL Server中有一个数据库应用程序,它使用SQL Server时间戳列来跟踪更改....也就是说,我可以通过表格知道如果我看到时间戳>某个参考时间戳,那么该行已经添加或更新.

我正在寻找类似MySQL的类型.它似乎不存在.那么,我是否必须使用触发器(好)或应用程序逻辑(坏)来复制此功能?

请注意,仅使用MySQL的TIMESTAMP并不是一个很好的解决方案,因为它并不总是唯一的,并且不会随着时间的推移而单调增加.

编辑---这是我多年来一直使用这些的场景......

我在OLTP系统中有一个表,它是库存的当前状态.我有一个前端GUI,显示库存的不同视图.我偶尔会去询问数据库"哪些行是新的/已更改".使用SQL Server的TIMESTAMP/ROWVERSION,我可以轻松地做到这一点.如果我使用实际的日期类型,我会遇到问题,我要么不止一次获得更新(不是一场大灾难),或偶尔错过更新(灾难).

mysql

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

为什么循环访问Visio Masters集合时C#"var"关键字不起作用?

我使用Visio API来遍历每Microsoft.Office.Interop.Visio.Master一个对象Microsoft.Office.Interop.DocumentMasters集合.

当我var按如下方式使用时,编译器只识别master为类型object并抛出错误:

foreach (var master in doc.Masters)
Run Code Online (Sandbox Code Playgroud)

相反,我必须这样做才能工作:

foreach (Visio.Master master in doc.Masters)
Run Code Online (Sandbox Code Playgroud)

为什么会这样?通常我var在foreach循环中使用没有问题.

编辑:我在使用Open方法时得到的错误master是:

'object'不包含'Open'的定义,也没有扩展方法'Open'可以找到接受'object'类型的第一个参数(你是否缺少using指令或汇编引用?)

c# type-inference

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

从具有虚函数的基类继承的类的sizeof

对于以下代码片段.

/*This program demonstartes how a virtual table pointer 
 * adds to a size of a class*/

class A{

};

class X{
    public:
        void doNothing(){}
    private:
        char a;

};

class Z:public X {

    public:
        void doNothing(){}
    private:
        char z;

}; 

class Y{
    public:
        virtual void doNothing(){}
    private:
        char a;

};

class P:public Y {

    public:
        void doNothing(){}
    private:
        char pp[4];

};

int main(){
    A a;
    X x;
    Y y;
    Z z;
    P p;
    std::cout << "Size of A:" << sizeof(a) …
Run Code Online (Sandbox Code Playgroud)

c++ virtual-functions sizeof

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

什么是更惯用的Ruby写作方式?

  if params[:parent_type] == "Order"
    parent_id = nil
  else
    parent_id = params[:parent_id]
  end
Run Code Online (Sandbox Code Playgroud)

一个Ruby人会嘲笑我这样写吗?它看起来并不像我见过的一些Ruby代码那样简洁.

ruby syntax idioms

4
推荐指数
3
解决办法
1319
查看次数

在跨线程WinForm事件处理中避免Invoke/BeginInvoke的困境?

我仍然受到WinForm UI中背景线程的困扰.为什么?以下是一些问题:

  1. 显然是最重要的问题,除非我在创建它的同一个线程上执行,否则我无法修改控件.
  2. 如您所知,Invoke,BeginInvoke等在创建Control之后才可用.
  3. 即使在RequiresInvoke返回true之后,BeginInvoke仍然可以抛出ObjectDisposed,即使它没有抛出,如果控件被销毁,它也可能永远不会执行代码.
  4. 即使在RequiresInvoke返回true之后,Invoke也可以无限期地挂起等待由调用Invoke同时处理的控件执行.

我正在寻找这个问题的优雅解决方案,但在我了解我正在寻找的具体内容之前,我想我会澄清问题.这是为了解决一般性问题并在其背后提出一个更具体的例子.对于这个例子,假设我们正在通过互联网传输大量数据.用户界面必须能够显示正在进行的传输的进度对话框.进度对话框应该持续快速更新(每秒更新5到20次).用户可以随时关闭进度对话框,并在需要时再次调用它.而且,让我们假装参数,如果对话框可见,它必须处理每个进度事件.用户可以单击进度对话框上的取消,并通过修改事件参数,取消操作.

现在我需要一个适合以下限制条件的解决方案:

  1. 允许工作线程调用Control/Form上的方法并阻塞/等待,直到执行完成.
  2. 允许对话框本身在初始化等时调用相同的方法(因此不使用invoke).
  3. 对处理方法或调用事件不施加任何实施负担,解决方案应仅更改事件订阅本身.
  4. 适当地处理阻塞调用到可能正在处理的对话框.不幸的是,这并不像检查IsDisposed那么容易.
  5. 必须能够与任何事件类型一起使用(假设类型为EventHandler的委托)
  6. 不得将异常转换为TargetInvocationException.
  7. 该解决方案必须与.Net 2.0及更高版本配合使用

那么,鉴于上述限制,这可以解决吗?我搜索并挖掘了无数的博客和讨论,唉,我还是空手而归.

更新:我确实意识到这个问题没有简单的答案.我只在这个网站上呆了几天,我见过一些有很多回答问题经验的人.我希望这些人中的一个能够充分解决这个问题,这样我就不会花费一周时间来建立一个合理的解决方案.

更新#2:好的,我将尝试更详细地描述问题,看看有什么(如果有的话)震动.允许我们确定其状态的以下属性引起了一些问题...

  1. Control.InvokeRequired =记录如果在当前线程上运行或者IsHandleCreated为所有父项返回false,则返回false.我很担心InvokeRequired实现有可能抛出ObjectDisposedException或甚至可能重新创建对象的句柄.并且由于InvokeRequired在我们无法调用(正在进行Dispose)时可以返回true,并且它可以返回false,即使我们可能需要使用invoke(正在创建),这在所有情况下都不可信任.唯一可以看到我们可以信任的地方InvokeRequired返回false是当IsHandleCreated在调用之前和之后都返回true时(BTW,InvokeRequired的MSDN文档确实提到了对IsHandleCreated的检查).

  2. Control.IsHandleCreated =如果已为控件分配了句柄,则返回true;否则返回true.否则,错误.虽然IsHandleCreated是一个安全的调用,但如果控件正在重新创建它的句柄,它可能会崩溃.这个潜在的问题似乎可以通过在访问IsHandleCreated和InvokeRequired时执行锁定(控制)来解决.

  3. Control.Disposing =如果控件处于处理过程中,则返回true.

  4. Control.IsDisposed =如果控件已被释放,则返回true.我正在考虑订阅Disposed事件并检查IsDisposed属性以确定BeginInvoke是否会完成.这里的一个大问题是在Disposing - > Disposed过渡期间缺少同步锁定.如果您订阅Disposed事件并在此之后验证Disposing == false && IsDisposed == false,您可能永远不会看到Disposed事件触发.这是因为Dispose的实现设置Disposing = false,然后设置Disposed = true.这为您提供了一个机会(无论多小),以便在已处理的控件上将Disposing和IsDisposed都读为false.

......我的头疼了:(希望上面的信息可以为那些遇到这些麻烦的人提供更多的解决方案.我很感激你的思考周期.

关闭麻烦......以下是Control.DestroyHandle()方法的后半部分:

if (!this.RecreatingHandle && (this.threadCallbackList != null))
{
    lock (this.threadCallbackList)
    {
        Exception exception = new ObjectDisposedException(base.GetType().Name);
        while (this.threadCallbackList.Count > 0)
        {
            ThreadMethodEntry entry = (ThreadMethodEntry) this.threadCallbackList.Dequeue();
            entry.exception = exception;
            entry.Complete();
        }
    }
}
if ((0x40 & ((int) ((long) UnsafeNativeMethods.GetWindowLong(new …
Run Code Online (Sandbox Code Playgroud)

.net c# events multithreading winforms

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

在对象上调用方法

给定PyObject*指向python对象,如何调用其中一个对象方法?文档从未举例说明:

PyObject* obj = ....
PyObject* args = Py_BuildValue("(s)", "An arg");
PyObject* method = PyWHATGOESHERE(obj, "foo");
PyObject* ret = PyWHATGOESHERE(obj, method, args);
if (!ret) {
   // check error...
}
Run Code Online (Sandbox Code Playgroud)

这相当于

>>> ret = obj.foo("An arg")
Run Code Online (Sandbox Code Playgroud)

c python embedded-language

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

如何用c#将persian datettime转换为DateTime?

我有一个texbox形式,用户插入波斯语DateTime我想将波斯语日期转换为日期时间保存在sql thanx中的答案

c# winforms

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