Calling a Single Threaded Win32 API/DLL

I am working on calling a single threaded Win32 API (in a vendor's dll).
Since this dll is single threaded in windows, when I call this in my Java program do I need to make sure that I do not have multiple threads calling this API.
Any thoughts will be appreciated.
Thanks

It shouldn't matter as long as you make sure that multiple threads aren't calling functions in that DLL at the same time. You can ensure this by either synchronizing your methods in Java or writing a multithreaded stub DLL that synchronizes calls to the single-threaded DLL for you.

Similar Messages

  • Win32 API & DLL calls

    Is possible to call in java directly the Win32 API or using a DLL?

    I dont believe you can do it directly but I think you can call a VBSCRIPT that can call WIN32 API directly

  • LabVIEW call Win32 API DLL function from third party

    Hi everyone,
    I'm trying to build a LabVIEW 2010 interface on 32-bit Window XP system to configurate and communicate to an Anglient laser head through its USB expansion box. I contacted the vendor and they shared a win32 API with some dll files. I started with a function called "A55292Find", but the CLF node always pop up error 1097.I checked the MSDN to get the corresponding LabVIEW data type for CLF.
    My question is: Do I need to initialize those arguments? (How can I know the values of them if initialization is needed?)
    Could anyone help me figure out what's the problem?
    Here is what I have from API documents about this function:
    The A55292Find function returns lists of handles and board types for all the 55292 USB
    Expansion Modules connected to the system.
    A55292RC __cdecl A55292Find(
    HANDLE hBoxes[], // List of handles for the boxes found. (as Unsigned 32-bit integer numeric)
    BOARDTYPE PortABrdType[], // List of board types for slot A boards (as Unsigned 16-bit integer numeric)
    BOARDTYPE PortBBrdType[], // List of board types for slot B boards (as Unsigned 16-bit integer numeric)
    WORD *spMaxBoxes); // dimension for all of the passed arrays. (as Unsigned 16-bit integer array data pointer)
    // (function return type as Unsigned 32-bit integer numeric)
    Parameters
    HBoxes[] Array that will receive the list of HANDLES for all the 55292 boxes connected.
    PortABrdType[] An array that will receive Slot ‘A’ board type information for each 55292 box.
    PortBBrdType[] An array that will receive Slot ‘B’ board type information for each 55292 box.
    spMxBoxes Passes the maximum number of values that can be held in hBoxes, PortABrdType, and PortBBoardType arrays to the A55292Find routine and returns the actual number of boxes found
    The return value will be one of the following A55292RC return codes:
    Value Meaning
    A55292_NO_ERROR No error
    A55292_TIMEOUT Timeout accessing a shared memory
    Remarks
    This routine must be called to obtain handles and board type information used in calling all the other routines. If there are significantly more array elements than boxes, the routine will take longer to complete.
    These are the definitions: 
    typedef DWORD A55292RC; enum{A55292_NO_ERROR, A55292_HANDLE_ERROR,...}
    typeder WORD BOARDTYPE; enum{A55292_PCAL_BOARD, A55292_NO_BOARD, ...}
    Thanks a lot,
    Kang
    Solved!
    Go to Solution.
    Attachments:
    call A55292Find.vi ‏10 KB

    nkang11 wrote:
    Hi Mr. Kalbermatter,
    As you told me, I should try to use the defined enumeration words as control and indicator.
    For the previous CLF node, it successfully returned the hardware configuration (I have only connected a board at slot A):
    But I really want to see a string return as "A55292_PCAL_BOARD" which is defined by "typedef WORD BOARDTYPE; enumeration {...}; Does that mean I need to change the data type or do something like "converter"? Or initialize the array first, then convert it to string type?
    Right now, I'm trying to open the laser card by using "A55292PcalOpen(HANDLE hDev, SLOTSELECT SlotSelector);" function which requires to use the enumeration constants from " typedef WORD SLOTSELECT; enum {A55292_PORT_A, A55292_PORT_B};" but I'm confused to shot an constant control to a new CLF node.
    Since almost all of the arguments in dll function are typedefined as WORD, short and struct et al, I hope you could give me some hints on it.
    Thank you very much sincerely!
    Kang
    Depending on the actual C implementation you can simply create a LabVIEW enum with the according item names or use a ring control instead. Teh enum requires the numeric values of the items to be in consecutive order without any gaps in between. This is a given if the C definition never assigns a specific number to the item. If the C enum is not consecutive you need to go with a ring control instead.
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

  • Win32 API calling by Code Interface Node

    Hi all,
    I wish to call a Win32 API function by using the code interface node.
    However, I don't know the data types in LabVIEW corresponding to the "HANDLE
    *" in Visual C++.
    Here's the function I wish to call:
    BOOL bOpenDriver (HANDLE * phDeviceHandle, PCHAR devname) {
    *phDeviceHandle = CreateFile(devname,
    GENERIC_WRITE,
    FILE_SHARE_WRITE,
    NULL,
    OPEN_EXISTING,
    0,
    NULL);
    if (*phDeviceHandle == INVALID_HANDLE_VALUE) {
    return (FALSE);
    } else {
    return (TRUE);
    Thank you in advance.
    JJ

    If this is really a Windows API function, then the handle can most likely be treated as an I32.
    Note that you can't actually do anything with the handle other than passing it to other functions.
    If you search this site for "LabVIEW" and "DLL" you should find some resources about working with DLLs and Win32 API DLLs.
    Try to take over the world!

  • Calling win32 api's from java

    Can someone tell's me how to call win32 api's from jdk1.4 ...
    Like in Delphi for example how to open cd-rom door...

    See this
    http://forum.java.sun.com/thread.jsp?forum=52&thread=94146

  • I am receiving this error message when trying to export pictures: 'Unable to Export": An internal error has occured: Win32 API error 2 ( "The system cannot find the file specified.") when calling ShellExecuteExW from AgWorkspace.shellExecute.// I have a H

    I am receiving this error message when trying to export pictures: 'Unable to Export": An internal error has occured: Win32 API error 2 ( "The system cannot find the file specified.") when calling ShellExecuteExW from AgWorkspace.shellExecute.// I have a HP ENVY Phoenix, fully loaded, 1 1/2 years old.

    Nevermind I fixed it. Thank you.

  • Win32 API user32.dll SendInput function help

    I'm looking for and example that uses the Win32 API user32.dll SentInput function.

    Hi, you find the required information in the MSDN online:
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winprog/winprog/windows_api_reference.asp
    and more specific the "SendInput" at:
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/userinput/keyboardinput/keyboardinputreference/keyboardinputfunctions/sendinput.asp
    Regards,
    Mattias Ericsson
    Endevo (www.endevo.se)
    Gothenburg, Sweden

  • Is addIndex() call single threaded ?

    Hey guys
    I have a question on Coherence indexing, I hope you can clarify.
    Currently, our indexing process takes up to 60 minutes to create indexes for 500K entries on one cache.
    It is a XML cache, and uses reflection extractor to extract XPath attribute to create index.
    Priming cache is a two step process: first, we finish priming the cache; second, we start adding indexes.
    60 minutes is too long, so we wrote a quick code to test whether adding index in parallel (using processing nodes) would reduce overall creation time.
    But, it made no difference. It is still taking 60 mins.
    Does that mean addIndex() call will lock the entry whilst it is being indexed, which makes other threads to wait for its turn ?
    I checked all documentation, could not find any answers. Any tips will be a big help.
    Note:
    - Business definitely wants to keep XML cache and index the attributes based on XPATH.
    Thanks
    Kannan

    Hey JK
    Thanks for your reply. Yeap you are right, I tried to explain them (Client) to move away from XML store but it was a no go. It is a bad design. Hence this approach.
    I did few tests yesterday, it proved that addIndex call is a single threaded and it uses one member node at a time (I profiled the JVM). However, when I tried to addIndex before priming the cache, the results are better.
    The cache service uses all storage nodes to update indexes in parallel. It does reduces overall indexing time.
    We have 16 indexes to create, average size of XML (compressed using zLib) is 10KB (but there are big files upto 70KB) and there are 500K entries. In total 16 storage nodes (3.5 G heap each) split by 2 physical machines in dev environment.
    I agree, everytime an index needs to be created or updated, the process needs to deserialize xml and extract the XPATH, add it to SimpleMapIndex. After that, the objects is ready for collection, which (as you said) causes lot of GC (CPU hits 100% most of the time).
    Given that I cannot change XML store and XPath based index, I have few options to tune with:
    1. Tune GC
    2. Use fast xml processing libraries
    3. Use LZ4 compression rather than Zlib.
    Thanks
    Kannan

  • Error message win32 API error2 when calling ShellExecuteErW from AgWorkspace.shellExecute

    after the command Exporting I get the message: Internal failure: win32 API error2 calling ShellExecuteErW from AgWorkspace.shellExecute. System is only exporting Thumnails.
    System is windows8, 64bit Lightroom 5.2 (newest version)

    At the bottom of the import dialog is a popup marked Post-processing.  It's probably currently empty.  Set it to Do Nothing and try the export again.

  • Calling win32 api in Forms

    Hi,
    Is it possible to invoke win32 api in Forms ? If so, from where can i get some samples ?
    Thanx in Advance.
    Regards,
    Saravanan A

    Hi,
    Is this available for 10g also...because in oracle website(http://www.oracle.com/technology/software/products/forms/index.html) D2KWUTIL library is available only for Form 6i
    Thanx in Advance.
    Regards,
    Saravanan A

  • RE: DBSessions and Single-threading

    Thanks Linh. Always good to here from you.
    thanks
    ka
    Kamran Amin
    Forte Technical Leader, Core Systems
    (203)-459-7362 or 8-204-7362 - Trumbull
    [email protected]
    From: Linh Pham[SMTP:[email protected]]
    Sent: Friday, November 13, 1998 2:51 PM
    To: Ajith Kallambella M; [email protected]; ForteUsers;
    [email protected]
    Subject: RE: DBSessions and Single-threading
    all,
    This information (technote draft # 11716) is to clear up the confusion
    regarding
    database access.
    Note, Forte reserves the right to change this implementation in the
    future.
    Currently, there are two flavors of database access available with forte
    (as of version 30j1):
    1. single-threading access to all databases on all UNIX & VMS platforms
    2. multithreading access to all supported database except Sybase on
    intel/alpha-NT,
    and to a certain extent, limited support with SQLServer (see more
    details below)
    1. single-threading access:
    with this type of access, when the following code is executed
    (SQL select ... on MyDBSession;), forte locks the partition and
    all EXTERNAL requests will be queued. However, task switching inside
    the partition continues until the called task enters the DBVendor's
    API (as with any 3GL call). Prior to this moment, you can still have
    multiple tasks running inside the partition. As the called task
    enters the 3GL, it truly blocks a partition, ie. it's OUT there
    talking to the database and not communicating with the
    the forte's environment. If the query is long, the partition might not
    be
    able to acknowledge the environment manager's ping, and thus, will be
    deemed NOT reachable, and a new partition will be started (see technote
    11147). Another problem arises when you have multiple INTERNAL tasks
    trying to perform database access concurrently on the same DBSession.
    Since the behavior is unpredictable, we RECOMMEND that you only
    have ONE task at any time accessing the DBSession inside a partition.
    Please see also technote 7104 for more information regarding DBSession
    sharing & blocking.
    2. multi-threading access:
    on NT, we have added code to allow multithreading access to most
    supported
    database. What does this mean?
    a. when a task access the database, the partition will NOT be blocked.
    b. you can have multiple DBSessions inside a partition and allow
    concurrent access; however, we still RECOMMEND that you
    only have ONE task accessing a DBSession at any one time.
    Please consult a Forte consultant or a TSR in reference to technote
    11151 (only available internally). Please do NOT call Forte Technical
    Support for this technote.
    As to SQLServer, the ODBC driver that you use to access the database
    will
    determine if it's is reentrant or not. There is also a known problem
    with
    the Microsoft ODBC driver which causes the cursor state to become
    invalid when
    multiple tasks accessing the same session. Due to these problems, forte
    recommends that you single-threading access to SQLServer; otherwise
    use at YOUR OWN RISK.
    Hope this helps. IF you have questions regarding multithreading access
    support
    in the future, please contact a Forte Sales Rep or TSR.
    linh ...
    -----Original Message-----
    From: [email protected]
    [<a href="mailto:[email protected]">mailto:[email protected]]On</a> Behalf Of Ajith Kallambella M
    Sent: Friday, November 13, 1998 9:08 AM
    To: [email protected]; ForteUsers; [email protected]
    Subject: RE: DBSessions and Single-threading
    Though, the DBSession partitions can reside on a
    thread-safe
    OS ( like NT ), the DBSession is still single threaded
    and your
    partition gets blocked for the duration of the DB
    access. Same
    is true, even if you have multi-threaded databases.
    Forte has not changed DBSession to make it
    multi-threaded.
    Infact, given the current implementation, the only way
    to simulate
    concurrent database access is to replicate the
    partition which
    has DBSession object. The famous DBEntityManagerPattern
    does essentially the same.
    I think we should all feel happy with this now, and
    hope for
    something better in 4.0.
    Ajith Kallambella. M
    Forte Systems Engineer,
    International Business Corporation
    -----Original Message-----
    From: Eric Pereira [<a href=
    "mailto:[email protected]">mailto:[email protected]</a>]
    Sent: Friday, November 13, 1998 9:54 AM
    To: [email protected]
    Cc: [email protected]
    Subject: RE: DBSessions and Single-threading
    Kamran,
    That's not entirely correct. Partitions which access
    multi-threaded
    databases (like MS SQL Server on NT) do not block.
    There was some
    discussion about this over the User Group a while back
    - with no real
    conclusion, so perhaps Forte might want to step in and
    clarify.
    What I'm curious about is the outcome in a situation
    where one DB
    Session accesses SQL Server and another one talks to a
    non
    multi-threaded database within the same partition.
    Thanks.
    Eric Pereira
    Forte Consultant
    ----Original Message Follows----
    From: "Amin, Kamran" <[email protected]>
    To: [email protected], Peter Kelly
    <[email protected]>
    Subject: RE: DBSessions and Single-threading
    Date: Fri, 13 Nov 1998 07:52:09 -0500
    Reply-To: "Amin, Kamran" <[email protected]>
    Peter,
    If one of the service object is being used the that
    partition gets
    blocked until it has finished the request to the
    dbsession. It will not
    mater if the service objects are connected to different
    database. Using
    a
    dbsession makes the partition single threaded and
    that's why we use load
    balancing. Please look at tech. note 10647 for more
    info.
    ka
    Kamran Amin
    Forte Technical Leader, Core Systems
    (203)-459-7362 or 8-204-7362 - Trumbull
    [email protected]
    From: Peter Kelly[SMTP:[email protected]]
    Sent: Friday, November 13, 1998 6:27 AM
    To: [email protected]
    Subject: DBSessions and Single-threading
    Does a DBSession executing in a partition cause thatpartition to
    become
    single-threaded?
    Suppose a partition has 2 Service Objects.
    Each Service Object has its own unique DBSession.
    While a method in one Service Object is using itsDBSession,
    do all other threads in that partition halt and thenresume
    when the work with the first DBSession is complete.
    What if the two DBSessions are connected to differentdatabases,
    does this change anything?
    I heard rumours that Oracle on NT supportedmulti-tasking and blocking
    would not occur. If blocking does occur, is it aForte or Oracle
    limitation?
    Any input/comments appreciated.
    thanks,
    Peter
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive
    <URL:<a href=
    "http://pinehurst.sageit.com/listarchive/">http://pinehurst.sageit.com/listarchive/</a>>
    >>
    >>
    Get Your Private, Free Email at <a href=
    "http://www.hotmail.com">http://www.hotmail.com</a>
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive
    <URL:<a href=
    "http://pinehurst.sageit.com/listarchive/">http://pinehurst.sageit.com/listarchive/</a>>
    >>
    >>
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:<a href=
    "http://pinehurst.sageit.com/listarchive/">http://pinehurst.sageit.com/listarchive/</a>>
    >>
    >
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:<a href=
    "http://pinehurst.sageit.com/listarchive/">http://pinehurst.sageit.com/listarchive/</a>>

    Thanks Linh. Always good to here from you.
    thanks
    ka
    Kamran Amin
    Forte Technical Leader, Core Systems
    (203)-459-7362 or 8-204-7362 - Trumbull
    [email protected]
    From: Linh Pham[SMTP:[email protected]]
    Sent: Friday, November 13, 1998 2:51 PM
    To: Ajith Kallambella M; [email protected]; ForteUsers;
    [email protected]
    Subject: RE: DBSessions and Single-threading
    all,
    This information (technote draft # 11716) is to clear up the confusion
    regarding
    database access.
    Note, Forte reserves the right to change this implementation in the
    future.
    Currently, there are two flavors of database access available with forte
    (as of version 30j1):
    1. single-threading access to all databases on all UNIX & VMS platforms
    2. multithreading access to all supported database except Sybase on
    intel/alpha-NT,
    and to a certain extent, limited support with SQLServer (see more
    details below)
    1. single-threading access:
    with this type of access, when the following code is executed
    (SQL select ... on MyDBSession;), forte locks the partition and
    all EXTERNAL requests will be queued. However, task switching inside
    the partition continues until the called task enters the DBVendor's
    API (as with any 3GL call). Prior to this moment, you can still have
    multiple tasks running inside the partition. As the called task
    enters the 3GL, it truly blocks a partition, ie. it's OUT there
    talking to the database and not communicating with the
    the forte's environment. If the query is long, the partition might not
    be
    able to acknowledge the environment manager's ping, and thus, will be
    deemed NOT reachable, and a new partition will be started (see technote
    11147). Another problem arises when you have multiple INTERNAL tasks
    trying to perform database access concurrently on the same DBSession.
    Since the behavior is unpredictable, we RECOMMEND that you only
    have ONE task at any time accessing the DBSession inside a partition.
    Please see also technote 7104 for more information regarding DBSession
    sharing & blocking.
    2. multi-threading access:
    on NT, we have added code to allow multithreading access to most
    supported
    database. What does this mean?
    a. when a task access the database, the partition will NOT be blocked.
    b. you can have multiple DBSessions inside a partition and allow
    concurrent access; however, we still RECOMMEND that you
    only have ONE task accessing a DBSession at any one time.
    Please consult a Forte consultant or a TSR in reference to technote
    11151 (only available internally). Please do NOT call Forte Technical
    Support for this technote.
    As to SQLServer, the ODBC driver that you use to access the database
    will
    determine if it's is reentrant or not. There is also a known problem
    with
    the Microsoft ODBC driver which causes the cursor state to become
    invalid when
    multiple tasks accessing the same session. Due to these problems, forte
    recommends that you single-threading access to SQLServer; otherwise
    use at YOUR OWN RISK.
    Hope this helps. IF you have questions regarding multithreading access
    support
    in the future, please contact a Forte Sales Rep or TSR.
    linh ...
    -----Original Message-----
    From: [email protected]
    [<a href="mailto:[email protected]">mailto:[email protected]]On</a> Behalf Of Ajith Kallambella M
    Sent: Friday, November 13, 1998 9:08 AM
    To: [email protected]; ForteUsers; [email protected]
    Subject: RE: DBSessions and Single-threading
    Though, the DBSession partitions can reside on a
    thread-safe
    OS ( like NT ), the DBSession is still single threaded
    and your
    partition gets blocked for the duration of the DB
    access. Same
    is true, even if you have multi-threaded databases.
    Forte has not changed DBSession to make it
    multi-threaded.
    Infact, given the current implementation, the only way
    to simulate
    concurrent database access is to replicate the
    partition which
    has DBSession object. The famous DBEntityManagerPattern
    does essentially the same.
    I think we should all feel happy with this now, and
    hope for
    something better in 4.0.
    Ajith Kallambella. M
    Forte Systems Engineer,
    International Business Corporation
    -----Original Message-----
    From: Eric Pereira [<a href=
    "mailto:[email protected]">mailto:[email protected]</a>]
    Sent: Friday, November 13, 1998 9:54 AM
    To: [email protected]
    Cc: [email protected]
    Subject: RE: DBSessions and Single-threading
    Kamran,
    That's not entirely correct. Partitions which access
    multi-threaded
    databases (like MS SQL Server on NT) do not block.
    There was some
    discussion about this over the User Group a while back
    - with no real
    conclusion, so perhaps Forte might want to step in and
    clarify.
    What I'm curious about is the outcome in a situation
    where one DB
    Session accesses SQL Server and another one talks to a
    non
    multi-threaded database within the same partition.
    Thanks.
    Eric Pereira
    Forte Consultant
    ----Original Message Follows----
    From: "Amin, Kamran" <[email protected]>
    To: [email protected], Peter Kelly
    <[email protected]>
    Subject: RE: DBSessions and Single-threading
    Date: Fri, 13 Nov 1998 07:52:09 -0500
    Reply-To: "Amin, Kamran" <[email protected]>
    Peter,
    If one of the service object is being used the that
    partition gets
    blocked until it has finished the request to the
    dbsession. It will not
    mater if the service objects are connected to different
    database. Using
    a
    dbsession makes the partition single threaded and
    that's why we use load
    balancing. Please look at tech. note 10647 for more
    info.
    ka
    Kamran Amin
    Forte Technical Leader, Core Systems
    (203)-459-7362 or 8-204-7362 - Trumbull
    [email protected]
    From: Peter Kelly[SMTP:[email protected]]
    Sent: Friday, November 13, 1998 6:27 AM
    To: [email protected]
    Subject: DBSessions and Single-threading
    Does a DBSession executing in a partition cause thatpartition to
    become
    single-threaded?
    Suppose a partition has 2 Service Objects.
    Each Service Object has its own unique DBSession.
    While a method in one Service Object is using itsDBSession,
    do all other threads in that partition halt and thenresume
    when the work with the first DBSession is complete.
    What if the two DBSessions are connected to differentdatabases,
    does this change anything?
    I heard rumours that Oracle on NT supportedmulti-tasking and blocking
    would not occur. If blocking does occur, is it aForte or Oracle
    limitation?
    Any input/comments appreciated.
    thanks,
    Peter
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive
    <URL:<a href=
    "http://pinehurst.sageit.com/listarchive/">http://pinehurst.sageit.com/listarchive/</a>>
    >>
    >>
    Get Your Private, Free Email at <a href=
    "http://www.hotmail.com">http://www.hotmail.com</a>
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive
    <URL:<a href=
    "http://pinehurst.sageit.com/listarchive/">http://pinehurst.sageit.com/listarchive/</a>>
    >>
    >>
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:<a href=
    "http://pinehurst.sageit.com/listarchive/">http://pinehurst.sageit.com/listarchive/</a>>
    >>
    >
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:<a href=
    "http://pinehurst.sageit.com/listarchive/">http://pinehurst.sageit.com/listarchive/</a>>

  • Step result in SIngle Threaded Apartment?

    Hi:
    I'm making a subsequence call using a New Thread and Single Threaded Apartment options. This is required so that some Active X functionality will work in the DLL calls of the subsequence. However, if any step fails in the Single Threaded Apartment, I don't see the step result in the Teststand report. I can see the failed sequence (based on the Wait step which collects the result), but not the step. If I uncheck the Single Threaded Apartment option, I can see the failing step in the report.
    Can anyone tell me how to fix this so I can get failing steps from a STA in the report?
    Thanks,
    Dave

    This behavior should be dependent on whether you launch a new thread, not whether the thread is STA. Assuming that this is the case, insert a Wait step right after your sequence call step, select Wait for Thread, and select your sequence call step.
    The Wait step will wait for the thread you spawned and it will retrieve its results. In the report, it will look like the Wait step called the subsequence.

  • Kill RT task frontpanel RED-X versus WIN32-API

    I have a LabVIEW task compiled to EXE which is downloaded to a remote processor; the front panel remains open locally.
    I want to kill that task and re-download it. This works the way I want if I use the local mouse to click the RED-X kill box on the upper right corner of the local front panel for the remote task... The panel disappears AND the remote task stops executing.
    The problem is that when I use the WIN32-API to try and kill the local front panel for the remote task I never get the remote task killed. Some  WIN32-API calls such as sending EndTask via USER32.DLL to the local panel's window ID cause the local panel to close but the remote task keeps running and is not aborted. Sending a WM_Close to the local panel's window ID involves the operator because it produces a LabVIEW dialog asking me whether I "want to close all RT tasks or not"
    What message do I send to the window, or what system call do I envoke to get the same result as that simple local mouse click on the RED-X kill box on the upper right corner of the local front panel for the remote task?
    Thanks, Jerry

    Hello.
    Normally a Real-Time task does not require a front panel so closing the Front Panel that you have opened remotely does not necessarily cause the VI to stop running, it merely disconnects the front panel connection to the VI.
    In order to achieve the same resul, you can use an Invoke Node to close another VI.
    To do this you will need to
    follow the steps outlined below.
    Open a blank VI and place an Open VI Reference on the block diagram.
    Create
    a control to the "VI Path" input of the Open VI Reference. On the front
    panel you will need to browse to the VI you want stopped.
    Wire an Invoke Node to the Open VI Reference and set the Invoke Node to "Abort VI."
    Wire a Close Reference to the Invoke Node.
    Wire a General Error Handler to the Close Reference.
    Open the VI that you want to stop. Make sure it is running and then run the vi you just created. This will stop the first VI.
    Hope this helps! 
    Kameralina
    Ask NI (ni.com/ask)
    Search The KnowledgeBase
    NI Developer Zone
    Measure It. Fix It. ni.com/greenengineering/
    NI Vision ni.com/vision/

  • How to migrate Win32 API QueueUserAPC on Solaris?

    Hi,
    I am trying to migrate Win32 API QueueUserAPC to Solaris. On Win32, it queues asynchrounous calls to a queue and runs under a specific thread context. Is there any equivalent call or implementation on Solaris?
    Thanks,
    Abhi.

    An excellent question.
    One that might best be discussed in a forum where database people hang out, rather than a forum where one reports documentation issues.

  • Waiting for a mouse click in a single thread

    Here's my problem:
    I'm working on a program I didn't initially create, and I picked it up from the rough midpoint of its evolution. It is a single thread AWT program, with a mouseListener interface already implemented.
    Here's my problem. In a game setting, we have two players. It is no problem when both are computer controlled. When player one is controlled by a human, I need to wait for a mouse event before returning, because upon returning player two moves (regardless of its player configuration).
    I can't do any kind of busy waiting because it is a single thread. I'm looking for some kind of option besides making the program multithreaded. This also makes it difficult to use some sort of boolean variable, though I don't think it's impossible.
    Thanks in advance for any help.
    Eric

    #9 - You are correct in your assumptions. I agree it's
    not the best model, but it worked for the original
    purpose, which was to have one player always
    controlled by the computer, and the option of
    selecting a second player as being either human or
    computer. Since each move is made manually - that is,
    for a move to be made, it requires user input - there
    was no harm in returning from a function, because it
    had no immediate computation. The requirements have
    just changed, and now I must allow both players to be
    selectable. This presents a problem in that I have to
    wait for the move actions to finish before
    proceeding.Understood.
    >
    My only question is, how can I access the AWT thread?You mentioned in an earlier post that you have action listeners. As triggered by user events, these are always called on the AWT thread. For example:
    import javax.swing.*;
    import javax.awt.event.*;
    JButton button = new JButton( new AbstractAction {
            public void actionPerformed(ActionEvent e) {
                synchronized (myMonitor) {
                    myMonitor.notifyAll();
        });This button can be added to some swing UI. If clicked on, then actionPerformed will be called on the AWT thread, and any threads waiting on myMonitor will be notified.
    I see what you are saying - it's almost exactly what
    my coworkers told me - but I don't have the knowledge
    to implement it, which is why I'm here. Creating a
    monitor object isn't a problem (makeMove() would need
    to be synchronized, otherwise you wouldn't be able to
    call wait()),I recommend using a separate object for the monitor, especially if you are already using synchronized, so that you know exactly how each object's lock is being used. If you're sure it is safe, then there is nothing wrong with using the object itself as the monitor, as you suggest, however.
    but I'm not sure what you mean by the
    action handling method should be called on the AWT
    thread.Just that any action listener method is always called on the AWT thread in response to user action.
    Dave

Maybe you are looking for

  • Acrobat 8.1.2 crashes when checking/unchecking spot colour channels

    Hi there, just wondering if this situation is a bug with Acrobat or an issue with my machine/OSX? I have created PDFs by distilling and exporting. If I open the resulting PDFs in Acrobat 8.1.2 and open the colour seps panel and turn off colours - par

  • ITunes 10.7 and Windows 8

    Hi. I installed Windows 8 pro on Saturday night at some point. iTunes was working fine the rest of the night on Saturday and most of the day on Sunday. Then suddenly on Sunday night, every time I opened iTunes it just freezes. I can't click on anythi

  • HT204266 my app in my itunes does not sync when i sync my ipad or iphone after i updated to the latest version?

    Before now, when i normally sync my itunes with my iphone or ipad, the apps that i ve updated in my iphone or ipad automatically get updated in my itunes, after my recent update of my itunes to the latest version, that seems impossible. Does any one

  • Wont connect wireless

    My photosmart 7520 printer was installed, connected, and working fine for a couple of weeks to my computer by wireless, peer to peer (no network, just computer and printer). The computer is connected to internet via wired ethernet dsl router.  Then a

  • Excelent signal streangth - No connectivity to WiFi...Why?

    I traded in my iPod touch and picked up a new iPad mini 2 weeks ago (11-7-2012).  for the first week the Wi Fi was perfect for lack of a better word.  All of the 6 ussual routers I used on my day to day connected with great streangth and speed.  over