标签: handle

检测python中的文件句柄泄漏?

我的程序似乎是泄漏文件句柄.我怎样才能找到哪里?

我的程序在几个不同的地方使用文件句柄 - 从子进程输出,调用ctypesAPI(ImageMagick)打开文件,然后复制它们.

它崩溃了shutil.copyfile,但我很确定这不是泄漏的地方.

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "C:\Python25\Lib\site-packages\magpy\magpy.py", line 874, in main
    magpy.run_all()
  File "C:\Python25\Lib\site-packages\magpy\magpy.py", line 656, in run_all
    [operation.operate() for operation in operations]
  File "C:\Python25\Lib\site-packages\magpy\magpy.py", line 417, in operate
    output_file = self.place_image(output_file)
  File "C:\Python25\Lib\site-packages\magpy\magpy.py", line 336, in place_image
    shutil.copyfile(str(input_file), str(self.full_filename))
  File "C:\Python25\Lib\shutil.py", line 47, in copyfile
    fdst = open(dst, 'wb')
IOError: [Errno 24] Too many open files: 'C:\\Documents and Settings\\stuart.axon\\Desktop\\calzone\\output\\wwtbam4\\Nokia_NCD\\nl\\icon_42x42_V000.png'
Press any key to continue …
Run Code Online (Sandbox Code Playgroud)

python file handle

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

究竟什么是"处理"?

我经常听说过"手柄",究竟是什么?

编辑:例如我听说过:windows处理事件处理文件句柄

等等.那些东西是一样的吗?或者他们是一些抽象的术语?

terminology handle

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

如何获取属于某个进程的已打开句柄的数量?

您可以使用Process Explorer程序查看运行应用程序的句柄数.有没有办法用Delphi代码来获取这个数字?我有兴趣跟踪应用程序本身的编号; 不要像Process Explorer那样找到其他应用程序使用的句柄数.

我的目的是让应用程序跟踪/检测可能的资源泄漏.

windows delphi winapi handle window-handles

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

SafeFileHandle.Close抛出异常,但句柄有效且有效

我在WPF应用程序中遇到自定义游标的问题.我使用以下代码来创建Cursor对象:

[DllImport("user32.dll")]
private static extern IntPtr CreateIconIndirect(ref IconInfo icon);

[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool GetIconInfo(IntPtr hIcon, ref IconInfo pIconInfo);

private static Cursor CreateCursor(string cursorName, System.Drawing.Bitmap bmp, 
    int xHotspot, int yHotspot, out SafeFileHandle handle)
{
    IconInfo tmp = new IconInfo();
    GetIconInfo(bmp.GetHicon(), ref tmp);
    tmp.xHotspot = xHotspot;
    tmp.yHotspot = yHotspot;
    tmp.fIcon = false;

    IntPtr ptr = CreateIconIndirect(ref tmp);
    handle = new SafeFileHandle(ptr, true);

    if (handle.IsClosed)
    {
        return null;
    }

    Cursor cur = CursorInteropHelper.Create(handle);

    return cur;
}
Run Code Online (Sandbox Code Playgroud)

当我关闭我的应用程序并且GC开始拾取垃圾时,它会引发异常:

System.Runtime.InteropServices.SEHException …
Run Code Online (Sandbox Code Playgroud)

c# wpf handle

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

如何在Mac OS X上列出POSIX信号量

如何在Mac OS X上列出属于特定进程的POSIX命名信号量?

我知道ipcs -s命令,但它似乎列出了System V信号量,我猜这与信号量不同,因为我不认识我自己命名的信号量.

我使用sem_open/ sem_close/ sem_wait函数.

有没有办法列出属于特定进程的"句柄",比如Windows平台上的Process Explorer?

macos posix handle

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

检查matlab手柄是否为数字手柄

如何检查matlab句柄是否是数字的句柄?

matlab handle

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

为迭代函数组合定义泛型函数

让我们定义任何函数句柄foo:

foo = @(x) x*2
Run Code Online (Sandbox Code Playgroud)

我试图写一个通用函数defFun生成的Ñ个职大功能foo,即ñ的反复调用foo,它可以存储在另一个手柄功能的方式boo,就像这样:

boo = defFun(foo,n)
Run Code Online (Sandbox Code Playgroud)

例如,

foo = @(x) x^2;  
boo = defFun(foo,3);
Run Code Online (Sandbox Code Playgroud)

boo(3)将给予6561 [== foo(foo(foo(3)))]boo(2)将给予256 [== foo(foo(foo(2)))].

我尝试使用此代码编写,defFun但这些句柄处理起来很棘手.有任何想法吗?

function boo = defFun(foo,n)
   h = foo;
   for i=2:n
      h = h(h);
   end
   boo = h
end
Run Code Online (Sandbox Code Playgroud)

matlab function handle

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

如何检查是否应关闭手柄?

如果ShellExecuteEx返回false,是否应该关闭句柄?:

function EditAndWait(const AFileName : string) : boolean;
var
  Info: TShellExecuteInfo;
begin
  FillChar(Info, SizeOf(Info), 0);
  Info.cbSize := SizeOf(Info);
  Info.lpVerb := 'edit';
  Info.lpFile := PAnsiChar(AFileName);
  Info.nShow := SW_SHOW;
  Info.fMask := SEE_MASK_NOCLOSEPROCESS;
  Result := ShellExecuteEx(@Info);
  if(Result) then 
  begin
    WaitForSingleObject(Info.hProcess, Infinite);
    CloseHandle(Info.hProcess);
  end else
  begin
     //should I close the process handle?
  end;
end;
Run Code Online (Sandbox Code Playgroud)

更一般地说,我如何检查手柄是否应该关闭?

delphi handle

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

如何检测用户在Android中有多个活动一段时间不活动

我知道同样的问题在这里,已经有人问过,并且有答案,但我对这个答案有疑问.

我的要求是,我想确定用户是否处于非活动状态5分钟,然后用户从应用程序中自动注销并上传登录并注销服务器上的日志.

我已经尝试了上面链接中的所有答案,但该答案适用于单个活动,但我想跟踪它以进行多项活动.

为此,我创建了抽象类

public abstract class SessionTimeOutActivity extends BaseActivity {

    public static final long DISCONNECT_TIMEOUT = 1000 * 60; // 5 min = 5 * 60 * 1000 ms

    private static Handler disconnectHandler = new Handler(new Handler.Callback() {
        @Override
        public boolean handleMessage(Message msg) {
            Log.d("SessionTimeOutActivity", "disconnectHandler");

            return false;
        }
    });

    private Runnable disconnectCallback = new Runnable() {
        @Override
        public void run() {
            // Perform any required operation on disconnect
            Log.d("SessionTimeOutActivity", "disconnectCallback");


            Toast.makeText(getApplicationContext(), "Session time out", Toast.LENGTH_LONG).show(); …
Run Code Online (Sandbox Code Playgroud)

session android handle lockscreen

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

如何将dispatchTouchEvent()从服务发送到任何Underlay活动

我想做的事? - 基本上我想在特定的时间在特定的X,Y坐标上实用地进行人体触摸 - 运行一个服务,它将通过某个接口(TCP/UDP)接收X,Y坐标 - 使用这些坐标激活dispatchTouchEvent()并获取实际人类手指点击给出的结果 - 我的意思是焦点活动可能是Android主屏幕或任何打开的活动或任何事情 - 片刻服务调用dispatchTouchEvent(),它应该执行点击. - 例如,如果打开App是计算器,并且dispatchTouchEvent()的X,Y坐标指向数字5,则应按5键

我现在做了什么? - 我已经启动了一个接收X,Y坐标的服务 - 在某个触发器上,它调用dispatchTouchEvent(),但它不起作用.它不会点击屏幕上的任何内容. - 它捕捉人类手指所做的每一次触摸事件.

问题是什么? - 如何将dispatchTouchEvent()发布到任何底层活动

示例代码: 我在这里附上示例代码.我刚刚将它简化为测试目的.首先,我们需要点击屏幕中的任意位置.它的X,Y坐标将被保存,一段时间后,将使用相同的坐标调用dispatchTouchEvent().

MainActivity.java

package com.test.overlay;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //Intent intent = new Intent(this, Overlay.class);
        Intent intent = new Intent(this, PlayerServiceTest.class);
        startService(intent);
        finish();
    }
}
Run Code Online (Sandbox Code Playgroud)

Overlay.java

package com.test.overlay;
import android.annotation.SuppressLint;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.PixelFormat; …
Run Code Online (Sandbox Code Playgroud)

events handle touch

6
推荐指数
0
解决办法
963
查看次数