several tasks in multi threads

I have an application that must be able to go out and capture of several materials OR simultaneously.

I coded it so that each task nidaq contains only the ports of capture for a single device or output ports for one device. That is, if I use two DevA and DevB devices to capture and output I'l have four tasks capture devA, capture devB, output and output devB devA.

Currently each task runs in its own thread, task is called only when all threads are ready to move on (each thread starts its own task).  AO1 is loop back to AI0 on devA so that the result is captured by the same device.

Unfortunately repeated screenshots show a variable phase shift in the AI0. The captured wave is often shifted left or right by as much as 1000 samples @48 kHz.

This problem could be alleviated by the achieve the capture and playback across all channels and devices in a single thread (sequential entry and exit) or random moving would still exist?

Basically, I want to perform the exact sample input and output.

If you are interested in the synchronization of multiple devices USB-4431, then you need to use a different type of device at the exit of a trigger signal.

Although the USB-4431 e/s digital, they can only be used to import triggers start or reference (see page 9 of the following manual):
http://www.NI.com/PDF/manuals/372485e.PDF

Because of this limitation, you will need to use an external trigger source to synchronize multiple devices USB-4431.

For large applications of synchronization, I recommend looking at the SMU system. Complete modules NI-SMU-4499 SMU chassis can support synchronization of up to 272 channels. More information about the synchronization is located in the Developer Zone article:
http://www.NI.com/white-paper/11369/en/

Tags: NI Hardware

Similar Questions

  • Urgent: continous recorders of NIDAQmx and other instruments with multi-threaded vc ++

    I'm working on a software with vc ++ to control several instruments including a NO-DAQmx6289. For example, the features of the software.

    1. communicate with data acquisition card (card data acquisition) and continuously acquire data from several channels at a frequency of 1 kHz.

    2. connect with function via port RS232 1 generator, sending triggered bursts to the real-time features generator change state Ultrasound (G_usstatus) variable.

    3. connect with optical switch via RS232 2 port, send signals to switch between the two input channels (0,1) and six output channels (2,3,4,5,6,7) to the specified user to sequence and time interval (default: 150 ms), real-time change the channel connection variable (G_optchannel).

    4. in real-time, record data and the corresponding ultrasound status and connection status of optical channel in a specified file use for later analysis.

    I use multiple threads to make data acquisition (1-wire), control of the function (2 wire) generator and optical switch (3 wire).  I also need save data acquisition of data and the corresponding ultrasound status and use the connection status of optical channel in a specified file for later analysis. I use the following codes to read data continuously.

    Sub DataCollectionWin::ConnectDAQ()
    {DAQmxErrChk (DAQmxCreateTask ("", & taskHandle));}
    DAQmxErrChk(DAQmxCreateAIVoltageChan(taskHandle,"Dev1/ai0","",DAQmx_Val_Cfg_Default,-10.0,10.0,DAQmx_Val_Volts,NULL));
    DAQmxErrChk(DAQmxCreateAIVoltageChan(taskHandle,"Dev1/ai0,Dev1/ai1,Dev1/ai2,Dev1/ai3,Dev1/ai4,Dev1/ai5,Dev1/ai16,Dev1/ai17,Dev1/ai18,Dev1/ai19,Dev1/ai20,Dev1/ai21,Dev1/ai6,Dev1/ai7,Dev1/ai22","",DAQmx_Val_Cfg_Default,-10.0,10.0,DAQmx_Val_Volts,NULL));
    DAQmxErrChk (DAQmxCfgSampClkTiming(taskHandle,"",1000.0,DAQmx_Val_Rising,DAQmx_Val_ContSamps,60000));

    DAQmxErrChk (DAQmxRegisterEveryNSamplesEvent (taskHandle, DAQmx_Val_Acquired_Into_Buffer, 50, 0, EveryNCallback, NULL));
    DAQmxErrChk (DAQmxRegisterDoneEvent(taskHandle,0,DoneCallback,));

    DAQmxErrChk (DAQmxStartTask (taskHandle));

    Error:
    If (DAQmxFailed (error))
    {
    DAQmxGetExtendedErrorInfo (errBuff, 2048);
    MessageBox (errBuff);
    DAQmxStopTask (taskHandle);
    DAQmxClearTask (taskHandle);
    return;
    }

    }

    Int32 CVICALLBACK EveryNCallback(TaskHandle taskHandle, int32 everyNsamplesEventType, uInt32 nSamples, void *callbackData)
    {
    char l_optstatus_s [1] l_optstatus_e [1];
    char l_usstatus_s [1] l_usstatus_e [1];

    /*********************************************/
    Reading DAQmx code
    /*********************************************/
    If (! m_bStopTracking)
    {
    l_usstatus_s [0] = g_usstatus [0];
    l_optstatus_s [0] = g_optstatus [0]; Switching State optical before reading the data of 50 * 15

    DAQmxErrChk (DAQmxReadAnalogF64(taskHandle,50,10.0,DAQmx_Val_GroupByScanNumber,data,50*15,&read,));

    SetEvent (hEvent);
    l_usstatus_e [0] = g_usstatus [0];
    l_optstatus_e [0] = g_optstatus [0]; Status of the ///optical at the end of the reading of the data of 50 * 15

    If (read > 0) / / / save data in an exl file specified by "datafile".
    {

    Indicator = 1;

    for (i = 0; i<>
    {(/ / fprintf(datafile,"%d\t",i);}
    fprintf(datafile,"%c\t",l_usstatus_s[0]);
    fprintf(datafile,"%c\t",l_usstatus_e[0]);
    fprintf(datafile,"%c\t",l_optstatus_s[0]);
    fprintf(datafile,"%c\t",l_optstatus_e[0]);
    fprintf(datafile,"%.2f\t",data[15*i]);
    fprintf(datafile,"%.2f\t",data[15*i+1]);
    fprintf(datafile,"%.2f\t",data[15*i+2]);
    fprintf(datafile,"%.2f\t",data[15*i+3]);
    fprintf(datafile,"%.2f\t",data[15*i+4]);
    fprintf(datafile,"%.2f\t",data[15*i+5]);
    fprintf(datafile,"%.2f\t",data[15*i+6]);
    fprintf(datafile,"%.2f\t",data[15*i+7]);
    fprintf(datafile,"%.2f\t",data[15*i+8]);
    fprintf(datafile,"%.2f\t",data[15*i+9]);
    fprintf(datafile,"%.2f\t",data[15*i+10]);
    fprintf(datafile,"%.2f\t",data[15*i+11]);
    fprintf(datafile,"%.2f\t",data[15*i+12]*5);
    fprintf(datafile,"%.2f\t",data[15*i+13]*5);
    fprintf(datafile,"%.2f\n",data[15*i+14]*5);
           
    }
      
    fflush (stdout);
      
    }
    }
    }

    Now the problem is the data acquired with daq card does not match the corresponding registered swtich optical status (G_optchannel, which specifies the light connecting channels). High readings expected certain status really appeared in any other situation.  It seems that there is a misalignment of the multi-thread data. Because the optical switching State passes to 150ms, so I put DAQmxRegisterEveryNSamplesEvent to be trigued each 50samples, which means 50ms with 1 kHz sampling to avoid missing the changes. I also check if there is any change of status during the DAQmxReadAnalogF64, by registering l_optstatus_s and l_optstatus_e, which are actually the same. I wonder if this is because the data are first registered in the buffer. When the software starts reading, at that time, optical swtich status no longer reflects the State when the data was recorded first. Is it possible to fix this?  Thank you very much!

    kGy,

    I'm glad to hear that you are progressing with your project.  Timestamp data are always a bit tricky, because the process of querying a counter on the CPU is done asynchronously with the acquisition of your DAQ hardware.  However, your equipment will ensure that the relative chronology between samples is consistent (in your case, the data will be sampled every 1 ms).  And since you have changed your program as you are now all samples acquired reading, you know that each sample follows the previous 1ms.  So, if I were to implement this I think that I take an initial horodotage when I started the task and to calculate the timestamp for all samples following this timestamp (timestamp SampleN = (*.001s + horodotage initial N) or timestamp SampleN = timestamp SampleN 1 +. 001 s).

    I would go to do that, rather than the timestamp of the end of the reading for the following reason.  As I mentioned previously, the reminder of your reading will run when the OS is planning.  Therefore, it is possible that it gets delayed or does not exactly in phase with the acquisition of hardware, and make adjustments to your code to handle this problem.  However, when you're timestamping there is another thing to pay attention to.  It's the fact that your hardware has a FIFO where sampled data can accumulate before getting transferred to the memory buffer that reading from (for example if the bus PCI were busy when the sample was acquired).  Now assume that the stars aligned against us and get the following:

    (1) the operating system is busy with other things, and our reminder read gets delayed a few ms.

    (2) at the same time, another device connects the PCI bus (or part of the data path between your device and the memory used for the buffer).

    (3) one or more samples is momentarily blocked in FIFO of the device.

    If you were to read data timestamp at the moment, your timestamp would reflect the data in the buffer as well as data that was flying in the FIFO of your device.  However, you can only read data in the buffer.  Thus, time stamp applied to data that you just read would be a millisecond or two later they should be.  Suppose that on the next read reminder, this condition has cleared up itself.  This timestamp taken here would be accurate, however, you will need to return some additional samples (those who were stuck in the FIFO last time).  If you backcalculation your timestamp at this stage, I think that the timestamp calculated for these ecaple timestamps calculated on the previous reading.  It wouldn't be ideal, nor would it reflect when the data has been actually sampled.

    One of the remaining challenges is how exactly the start of time stamp feature.  To do this, I would like to add a call to DAQmxTaskControl (taskHandle, DAQmx_Val_Task_Commit) before calling DAQmxStartTask.  This step will advance the State template DAQmx as far as possible without actually starting the task.  This will help to DAQmxStartTask as soon as possible.  Now, before the appellant beginning or immediately after, I would take my initial horodotage (perhaps timestamp before and after and take the average).  Then I would use this original time stamp and my sampling rate known to calculate timestamps for all the rest of my samples.

    That got a bit long, but I hope it has been helpful.

    Dan

  • LabVIEW built of DLL in an application multi-threaded C++, need help!

    I'm working on a software application which is developed mainly in C++. There is a component of this larger application, however, develop in LabVIEW (for several reasons that I dive in here). This LabVIEW code is therefore run in a C++ wrapper class that calls a built DLLS LabVIEW.

    All this was fine and dandy, until we decided to multi-threaded, our C++ application for an increase in performance. Accordingly, the LabVIEW DLL now is called from multiple threads simultaneously. While this works on a functional level, it seems to create a bottleneck.  All my tests, it is resource locking occurs, such that only one thread has access to the .dll at a time. If I do the .vi used to define the dll as a non-reentrant function prototype so it's what we see. For example, say we have 3 sons all calling the same .dll method call. Thread 1, 2, 3 and all call the .dll file in a few milliseconds of each other. Thread 1 has completed the call .dll after X milliseconds. Thread 2 has finished the .dll call after 2 X milliseconds, and wire 3 full after 3 x milliseconds.

    Now, changing the vi home and runs the same test, we see wire 1, 2, 3 and all end them the call of .dll in 3 x milliseconds. While the fact that they are now the same amount of time to complete you would lead to believe they are spend at the same time, the fact that it takes 3 x milliseconds as opposed to X milliseconds means that they are not.

    Has anyone ever dealt with these issues before? Is it possible to play with the "delivery system" for the vi will have an effect? What happens if .dll methods while remaining attached to the same .dll are called from different threads? Same behavior? Is it a lost cause? Is there any way to make the code in a DLL only built LabVIEW run in two different threads at the same? What I understand is easily achievable with a normal (non - built LV) .dll.

    Please, if anyone has any advice in this area, let me know!

    Much appreciated,
    Jesse Hurdus

    Hi jhurdus,

    I know that you are working with an engineer OR this question, but I wanted to post a reply to one of your last questions.

    When you use the function node library call in LabVIEW, there is the possibility to select 'Run in the user interface thread' or 'run in any thread '.  This option, according to the help file for LabVIEW (dialog box call library functions), allows the developer to pass thread library function node call from the (default) user interface thread to the thread that the VI is running.  Additional details of when you want to switch the thread of execution are in the help file.

    Kevin S.

    Technical sales engineer

    National Instruments

  • Porting an application multi-threaded for Adobe Air.

    Someone at - it never been faced with this task?

    The application in question has a thread about 10 in addition to the main user interface thread.

    Each thread is blocking ops in long-distance communication, GPS, HTTP, manipulation of the filesystem, processing of data of general application, SQL execution, etc.

    Very little of it is based on the direct interaction of the user.

    Is it possible to get something like this in Adobe Air?

    Or simply wait for Android/BB... which would be realistic player out right at about the time where that this port is complete.

    Support an implementation not threaded with threaded implementations could be a lot of work.  I would recommend waiting.

    AIR has a flash.utils.Timer class, or a simple setTimeout() call that uses only the timer below.  The question is not "burden" on the UI thread, depending on CPU load... work has to be done one way or the other.  The issue is latency, in terms of how long it takes the application to respond to user events, or how long to make the updates.  Do more that small pieces at a time in the main thread, you will feel your app slow and inconsistent, with irregular updates and (if you try) animations jerks.

    Thread safety is not a big deal, normally... it is a matter of concern for applications poorly structured in a multithreaded environment.  Properly structured multi-threaded applications will eventually look a lot like an AIR application, with respect to certain things (for example, GPS pilot or connections SQLite) communicating through mechanisms of threads (queues, events, etc.) with the main thread.

    Called async stuff basically back to the main thread.  What are the event listeners.  You might be better not think of it as a wire when even... it's not like your "main thread" in another application, perhaps, where you have full control.  This is the main thread in a framework of GUI like WxWidgets or QT or whatever... everything is done with events and you * must * return to the caller (the frame) as quickly as possible or you will have a user experience impact.  Basically, the entire application is a collection of event listeners, with no place where you can implement a "loop of interrogation" for example, as you might in a different environment.

    Rather than stuff on 'simple threaded environments', you should probably just search for "asynchronous programming" or "event-driven" stuff.  There not much more to it than that.

  • With Multi-Threading memory management

    Because the buffer of Photoshop Suite really does not want to be reminded of several threads (at least it is what I think I saw in the docs), what is the best strategy to manage memory dynamic allocation of in a plugin multi-threaded implementation?

    -Christmas

    Run the user interface in the main thread, allocate buffers in the main thread, the involved threads of shipping work.

    And Yes, the Plugin API is decidedly not thread-safe.  There are a lot of plumbing to clean before they can be thread-safe...

  • Multi-threaded error handling method

    I have a multi-threaded application.  When an error occurs in one of the wires causing the failed system, all threads will raise an error and display an error dialog box.  I think on the withdrawal of the appeal to the error handler in the secondary threads and instead send the error for the main thread to the provision.  Is this a common model?  Is there a better way to do it?

    kc64 wrote:
    I have a multi-threaded application.  When an error occurs in one of the wires causing the failed system, all threads will raise an error and display an error dialog box.  I think on the withdrawal of the appeal to the error handler in the secondary threads and instead send the error for the main thread to the provision.  Which is a common model?  Is there a better way to do it?

    Not as common as it is MUST.

    We use a logger who passes all errors to a background process that connects to produce for examination later. This is the minimum. If a fatal errors then adjust us the design of the application respond accordingly when bad things happen.

  • Question no doubt multi-threaded

    Greetings!

    Don't know what kind of problem I face, but still very interesting.

    I have a UiApplication who starts a thread to listen to incoming SMS and respond automatically. This same class implements PhoneListener as below:

    public class SMSSenderReceiver extends Thread implements PhoneListener {
    
        private static DatagramConnection _dc;
        private static int _callIdIncoming;
        private static int _callIdAnswered;
        public static String _phoneNumber;
    
        static {
        try {
            _dc = (DatagramConnection) Connector.open("sms://");
            } catch (IOException e) {
                System.out.println(e);
            }
        }
    
        public SMSSenderReceiver() {
            super();
            _callIdIncoming = -1;
            _callIdAnswered = -1;
            Phone.addPhoneListener(this);
        }
    
        public void run() {
            try {
                for (;;) {
                    Datagram d = _dc.newDatagram(_dc.getMaximumLength());
                    _dc.receive(d);
                    String address = d.getAddress();
                    if (address.startsWith("//")) {
                        address = address.substring(2);
                    }
                    String answer = getResponseByPhone(address);
                    if (answer != null) {
                        answer.getBytes();
                        Datagram returnpacket = _dc.newDatagram(_dc
                                .getMaximumLength());
                        returnpacket.setAddress(d.getAddress());
                        returnpacket.setData(answer.getBytes(), 0, answer.length());
                        _dc.send(returnpacket);
                    }
                }
            } catch (IOException ioe) {
                System.out.println(ioe);
                Phone.removePhoneListener(this);
            }
        }
    
        private static String getResponseByPhone(final String phone) {
            TextResponses tr = TextResponses.getInstance();
            MultiMap mm = tr.getResponses();
            Enumeration valuesEnum = mm.keys();
            while (valuesEnum.hasMoreElements()) {
                String element = valuesEnum.nextElement().toString();
                if (mm.containsValue(element, phone)) {
                    return element;
                } else {
                    continue;
                }
            }
            return null;
        }
    
        //  public void missedCallSMSSender(final String address) {
        //      try {
        //          if(_callIdAnswered != _callIdIncoming){
        //              //              if (address.startsWith("//")) {
        //              //                  address = address.substring(2);
        //              //              }
        //              String answer = this.getResponseByPhone(address);
        //              if (answer != null) {
        //                  answer.getBytes();
        //                  Datagram returnpacket = _dc.newDatagram(_dc
        //                          .getMaximumLength());
        //                  returnpacket.setAddress("//" + address);
        //                  returnpacket.setData(answer.getBytes(), 0, answer
        //                          .length());
        //                  _dc.send(returnpacket);
        //              }
        //              _callIdAnswered = _callIdIncoming = -1;
        //              //_phoneCallsHash.remove("" + _callIdIncoming);
        //          }
        //      } catch (Exception e) {
        //          System.out.println(e);
        //      }
        //  }
    
        public void callIncoming(final int callId) {
            if(_callIdIncoming != callId){
                UiApplication.getUiApplication().invokeLater(new Runnable(){
                    public void run() {
                        _callIdIncoming = callId;
                        PhoneCall phoneCall = Phone.getCall( callId );
                        _phoneNumber = null;
                        try {
                            _phoneNumber = phoneCall.getDisplayPhoneNumber();
    
                            String tempNumber = null;
                            for(int i = _phoneNumber.length() -1 ;i >= 0; --i) {
                                if(Character.isDigit(_phoneNumber.charAt(i))){
                                    tempNumber = _phoneNumber.charAt(i) + ((tempNumber == null) ? "" : tempNumber) ;
                                }
                            }
                            _phoneNumber = tempNumber;
    
                            System.out.println("**bleep** Phone Number: " + _phoneNumber);
                        } catch(NullPointerException npe) {
                            _phoneNumber = "0";
                            System.out.println("NULL!!!!" + npe);
                        }
                    }
                });
            }
        }
    
        public void callAnswered(int callId) {
            _callIdAnswered = callId;
        }
    
        public void callDisconnected(int callId) {
            UiApplication.getUiApplication().invokeLater(new Runnable(){
                public void run() {
                    //System.out.println("**bleep** Phone Number: " + _phoneNumber);
                    //SMSSenderReceiver.this.missedCallSMSSender(_phoneNumber);
                    String address = _phoneNumber;
                    if(_callIdAnswered != _callIdIncoming){
                        //                  if (address.startsWith("//")) {
                        //                      address = address.substring(2);
                        //                  }
                        String answer = getResponseByPhone(address);
                        if (answer != null) {
                            answer.getBytes();
                            try {
                                Datagram returnpacket = _dc.newDatagram(_dc.getMaximumLength());
                                returnpacket.setAddress("//" + address);
                                returnpacket.setData(answer.getBytes(), 0, answer
                                        .length());
                                _dc.send(returnpacket);
                            } catch(Exception e) {
                                System.out.println(e);
                            }
                        }
                        _callIdAnswered = _callIdIncoming = -1;
                    }
                }
            });
        }
    ...
    

    The goal is to send an SMS for each missed call. Thus, on incomingCall while I get caller Id and phone number assign them static variables. If the call is answered I catch the call id also. Once the call is disconnected I just check the id of appeal responded and id entering in case they differ from each other, I got a call from miss and I send a SMS.

    The problem is once the callDisconneted is called, I don't have the value of _phoneNumber. On incomingCall I could see the number, but not after all. Why? Seems to be a fundamental basis on the multi-thread.

    Anyone know what is happening?

    Thanks in advance!

    --

    This question probably has to do with the fact that the listener to call is actually coming in your code on the phone application thread. Each application gets a copy separate from the static context. As a result, you won't see the same data when you access this variable in your own application process.

    You can probably here either: (a) send yourself a form of global event listener call, then pick up the event in your own process, or (b) use the runtime store to keep the value so that the two processes can * see * it.

  • Dynamic region with several task page fragment flow isn't refreshing VO

    JDeveloper version is 12.1.3 and Weblogic Server is 12.1.3.

    We have a dynamic region with several task page fragment flow.  We have created a menu that will open on the workflow task in the dynamic region. Before defining the workflow id in the bean, we execute query on the original Version after setting the bind variable. When we click on the menu is open the flow of relevant tasks in the region and showing the Original data table.

    But when we open the same request again to a different browser session, it shows all the data in the original Version when the user clicks on the relevant menu item...

    I have attached the code used to navigate to the different workflow tasks written in the bean from the back of the home page.

    We have no idea why anyone what happens, if it's a server problem or a code issue. Because unless and until we open the target application in a new browser it works fine.

    We tried and deployed on a remote server as well, but it gives the same question...

    Would be really grateful for the help...

    The user, the code you posted has some serious problems. Never, I repeat never store a reference to an application module in a static variable in a bean. That is why you see only data once. After that, the second session reuses the application module from the first to the configuration data, but to display data it uses a module different application.

    The way you try to configuration data is too bad. You must pass the parameters to the workflow and init data in the default action of the workflow instead of doing before installing the new workflow id. A workflow is a unit of work that is kind of a black box. You may not assume that the stuff you do outside of this black box can be seen inside the box. This is only true if the workflow share the same control of data as it's parent (share of data control).

    I suggest you read some documents on the workflow and how they work. A good start is to look at this video https://www.youtube.com/watch?v=A3CmDhWHaG0

    or work through this tutorial 12 c (12.1.3) Oracle JDeveloper tutorials - working with bounded task flows, regions and routers

    Timo

  • Multi-threading

    I am looking to buy a new Mac Pro.  There are options that are inspired mainly by what applications you clocked.  He suggests that apps that don't take advantage of the multi-threading will perform better on processors with clock speeds higher while those who will benefit more from hearts.  Lightroom will perform better with more cores or a higher clock speed?

    Lightroom takes advantage of multiple threads so that saturates the CPU sometimes, but a lot of time, there are some other bottleneck on the system like i/o to disk or video memory so that thread or cpu optimization gains are dumb.

  • Multi threading issue.

    Hello
    I have worked on a project and would be grateful if I have a solution for this. The issue I'm facing is when two admin update the details of a "user" at the same time there are lines that are unique in the table. Here I use the framework KODO to remove and insert new values into the table when the administrator clicks the button Save. (here being complex update, delete, and insert is used).

    so when two admin clicks of the button simultaneously duplicate lines occur in the table.

    How can I solve this problem, I think using Sync is a bad option as he eats performance.
    Is there a way to correct this multi threading issue in java without locking or wielding resources (such as application performance does not diminish), since this part of my commonly used web application?

    The normal way to avoid this problem is to have a unique index on the table that prevents duplicate entries.

    I wouldn't delete the entry, only insert the entry if it does not exist and update it if it isn't.

    If you block on a unique key for the user/line (rather than the entire table) your overhead costs will be about 2 microseconds. It is very small for an interaction with the user-driven application. You could lock the whole table which may limit your request to about 100 updates per second, but would be much simpler to manage. Personally, if administrators perform more than 100 updates per second there is something wrong with your model.

    In short I just lock the entire table and optimize if it proves to be a problem.

  • Multi threading in flex concept?

    Hello

    I have an application with 4 quandrants. Each name separate webservice and based on the data in result I get, I build user interface elements dynamically. Unfortunately, I have to wait for each manager result in order to complete the construction of the user interface. Is it possible to run all 4 result together managers?

    Ex:

    I have 4 webservices: ws1, ws2, ws3 and ws4. I pass some parameters and invoke these services, complete creation:

    WS1. OperationName.Send ();

    WS2. OperationName.Send ();

    WS3. OperationName.Send ();

    WS4. OperationName.Send ();

    ws1ResultHandler(event:ResultEvent):void

    {

    }

    ws2ResultHandler(event:ResultEvent):void

    {

    }

    ws3ResultHandler(event:ResultEvent):void

    {

    }

    ws4ResultHandler(event:ResultEvent):void

    {

    }

    From the Web service operation which is managed to get the first data, this particular manager fires. Once all of the code in this handler is executed, she then gets in the next operation of webservice result handler.

    Is there a way to trigger all these handlers together and build together dynamically user interface elements at once?

    Appreciate your ideas on this.

    "Is there a way to trigger all these handlers together and build the UI together dynamically at THE SAME time?"

    Excuse my small edit, but the answer is 'no '. Flex is not multi-threaded.

    You can look at why it takes so long to build the user interface as a problem.

  • How to use multi-threaded file conversions?

    Hello

    I am able to convert .doc, .jpg file in pdf and in the margin

    I would like to thank all the people in this forum to help me get this thing done.

    In livecycle deployment guide I saw for multi threaded convertion I create at least 3 reviews with admin right.

    but my question is how I got these user programmatically to successfully accomplished this multithread convertion?

    I can't connect using these user of the admin user interface... Why?

    Thank you.

    Barun Baptist

    The user aren't LiveCycle users, users of the operating system. These users are used by LiveCycle when it launches the "native" applications used for conversions.  Users are necessary because many of the native applications (such as Microsoft Word) do not allow for multi-threading and thread saftey becomes a matter of concern.

    For example: I have three users of the system who are allowed to open Microsoft Office - Allen, Bob and Carl.  When I install LiveCycle I told on the three users during installation.  Later, I make a few requests to convert Word documents to PDF files.  If requests come simultaneously, one will be converted using the account of Allen, the second with Bob and the third with Carl.  A fourth request will be queued until one of the other conversions is finished.

    As a developer, you don't need to make the request on behalf of these users, which is controlled by LiveCycle.

  • Clarification of the idiom of the neck/body in multi threaded applications

    Hello

    As some DBXML classes use the handle body language (idiom neck/body in some docs), could someone please clarify the consequences of that in a multi thread as a web container application?

    For the people of Java 100%, like me, it is known in the Java world as "programming to interfaces", or model of bridge; who is considered a good practice.

    Let's take an example. The XmlQueryContext class is not thread-safe, but it has a copy constructor. Imagine that your web application has a XmlQueryContext, that we never use in a query, but that prepares us can only be fully copied in further discussions. Is it safe to instantiate the various XmlQueryContexts again using the copy constructor, then, in various news feeds and use them at the same time?

    Thank you
    Koen

    PS Ce I'm wondering really here, is if someone could translate it please the following to talk about Java:

    A copy constructor is provided for this class. The class is implemented by using a language of the body handle. When a handle is copied both handles retain a reference to the same body.

    As a user of Java, you don't have to worry about how the C++ copy constructors behave. In the Java API if there is a copy constructor for the object, then the copy constructor copies all the data of the original object in a new object (XmlContainer is the only exception to this rule, generally do not use this constructor to copy at all). So basically, what you intend to do will work.

    Lauren Foutz

  • You want a Service that performs several tasks in parallel?

    If you do, vote for RT-27953 in jira to get some attention here.

    After voting, in the meantime you can use the solution here:
    Re: create several parallel tasks into a single service "Thread: create several parallel tasks into a single service.

  • Multi-threaded custom device

    Is it possible to create a custom multithreaded device?  I want to create a client-server architecture, somewhat like the http://zone.ni.com/devzone/cda/tut/p/id/3098 example in a custom device.  The only difference would be that I would like to make the series of read/write in the high priority task.

    Thanks for the help!

    -Ryan

    Hi Ryan,

    This should be possible if you use a custom asynchronous device. The curls will then run in their own thread and do not affect the execution of the primary control loop. Make sure that there is enough time sleeping in your loop of high priority. Note, however, that put communication series in the loop of high priority will negatively affect your determinism.

    For more information on the Veristand engine and the custom device types you can choose one, please see the following:

    Understand the VeriStand engine

    Creation of custom devices

Maybe you are looking for

  • Portege R500 - can I change the SSD?

    Hello. The question of replacement, replace the ssd. I myself PORTEGE R500 (PPR50U-02M01W version) with SAMSUNG_MCCOE64GQMPQ_SE805B0137. He has only 64 GB. I contacted Toshiba service asking to replace by something big, they said it's impossible! HOW

  • Buy 4 GB 667 MHz DDR2 SDRAM stick to an apple store?

    Buy 4 GB 667 MHz DDR2 SDRAM stick to an apple store?

  • Power On button does nothing

    Pushing my Presario SR1913 power button does nothing.  No matter what power and output cable, I use (all the work for my other PC). The click of a button, the cable connecting to the motherboard SR1913WM seems good.  Like the mobo, including all caps

  • Help with Sansa e270

    I have a Sansa e270, for some time I started to have problems with and it got bigger and bigger, until it reached when I start it it gives me just the welcome message and it freeze in the menu tart for a second giving a message (update of databas) an

  • Microsoft Excel stdole32.tlb

    I recently updated my PC Vista XP.  Since installing Vista, I'm having a problem with Microsoft Excel.  Whenever I click on the Excel tab or icon to launch I get an error of stdole32.tlb is missing or damaged and that Microsoft "fix" should be run.