I agree that you need to do some foundational work before you enroll in a class (if that's what you decide to do).
Have you already taken a practice test in our system? If not, do that first. We need to see whether your current scoring level is 340 based on your foundational knowledge level or whether your current scoring level could be higher just by fixing timing issues. (If you run out of time and don't answer or have to guess on 4+ questions at the end of a section, your score is going to drop pretty substantially.)
If you have a free account with us, then you have access to one practice CAT. Do take the full test (including essay and IR) and do take it under official conditions (timing, breaks, etc).
Also, read these two articles:
http://tinyurl.com/executivereasoninghttp://tinyurl.com/2ndlevelofgmatThink about how what you've been doing does and doesn't match up with that and how you may need to change your approach accordingly. Figure out your strengths and weaknesses as well as any ideas you have for what you think you should do. Then come back here and tell us what you think; we'll tell you whether we agree and advise you further. (Note: do share an analysis with us, not just the raw data. Part of getting better is developing your ability to analyze your results - figure out what they mean and what you think you should do about them!)
If we discover that you do have foundational issues, then I'd recommend a program of working through our Foundations of Verbal and Foundations of Math Strategy Guides (along with two FoM workshops) and then you can join a class or start a self-study program.
Now, let's talk about how to decide that, since these programs all come with the Foundations material - so if you decide you want to do a class, you can sign up for one that starts a month or two from now, get all of the materials, and work through the Foundations lessons before the class starts.
In general, do you prefer to study on your own or do you prefer to have a teacher who can guide you and answer questions? Do you like the camaraderie of a classroom of fellow students? Would you want to set up study groups? Those are all good reasons to join a class.
In-person vs. online: assuming you have a choice (ie, the program you want to join holds in-person classes in your city), can you focus 100% when on your computer or will you be more engaged and less distracted if you are sitting in an actual, physical classroom? Conversely, is your work schedule such that it would be hard for you to get to a physical classroom sometimes? Would your attendance be more regular if the class is online?